android.view.KeyEvent#KEYCODE_EQUALS源码实例Demo

下面列出了android.view.KeyEvent#KEYCODE_EQUALS 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: android_9.0.0_r45   文件: AbsSeekBar.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (isEnabled()) {
        int increment = mKeyProgressIncrement;
        switch (keyCode) {
            case KeyEvent.KEYCODE_DPAD_LEFT:
            case KeyEvent.KEYCODE_MINUS:
                increment = -increment;
                // fallthrough
            case KeyEvent.KEYCODE_DPAD_RIGHT:
            case KeyEvent.KEYCODE_PLUS:
            case KeyEvent.KEYCODE_EQUALS:
                increment = isLayoutRtl() ? -increment : increment;

                if (setProgressInternal(getProgress() + increment, true, true)) {
                    onKeyChange();
                    return true;
                }
                break;
        }
    }

    return super.onKeyDown(keyCode, event);
}
 
源代码2 项目: RangeSeekBar   文件: RangeSeekBar.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (isEnabled()) {
        int increment = mKeyProgressIncrement;
        switch (keyCode) {
            case KeyEvent.KEYCODE_DPAD_LEFT:
            case KeyEvent.KEYCODE_MINUS:
                increment = -increment;
                // fallthrough
            case KeyEvent.KEYCODE_DPAD_RIGHT:
            case KeyEvent.KEYCODE_PLUS:
            case KeyEvent.KEYCODE_EQUALS:
                if (setProgressInternal(getProgressStart() - increment, getProgressEnd() + increment, true, true)) {
                    onKeyChange();
                    return true;
                }
                break;
        }
    }

    return super.onKeyDown(keyCode, event);
}
 

private Float calculateIncrementForKey(int keyCode) {
  // If this is a long press, increase the increment so it will only take around 20 steps.
  // Otherwise choose the smallest valid increment.
  float increment = isLongPress ? calculateStepIncrement(20) : calculateStepIncrement();
  switch (keyCode) {
    case KeyEvent.KEYCODE_DPAD_LEFT:
      return isRtl() ? increment : -increment;
    case KeyEvent.KEYCODE_DPAD_RIGHT:
      return isRtl() ? -increment : increment;
    case KeyEvent.KEYCODE_MINUS:
      return -increment;
    case KeyEvent.KEYCODE_EQUALS:
      // Numpad Plus == Shift + Equals, at least in AVD, so fall through.
    case KeyEvent.KEYCODE_PLUS:
      return increment;
    default:
      return null;
  }
}
 

private Boolean onKeyDownNoActiveThumb(int keyCode, @NonNull KeyEvent event) {
  switch (keyCode) {
    case KeyEvent.KEYCODE_TAB:
      if (event.hasNoModifiers()) {
        return moveFocus(1);
      }

      if (event.isShiftPressed()) {
        return moveFocus(-1);
      }
      return false;
    case KeyEvent.KEYCODE_DPAD_LEFT:
      moveFocusInAbsoluteDirection(-1);
      return true;
    case KeyEvent.KEYCODE_MINUS:
      moveFocus(-1);
      return true;
    case KeyEvent.KEYCODE_DPAD_RIGHT:
      moveFocusInAbsoluteDirection(1);
      return true;
    case KeyEvent.KEYCODE_EQUALS:
      // Numpad Plus == Shift + Equals, at least in AVD, so fall through.
    case KeyEvent.KEYCODE_PLUS:
      moveFocus(1);
      return true;
    case KeyEvent.KEYCODE_DPAD_CENTER:
    case KeyEvent.KEYCODE_ENTER:
      activeThumbIdx = focusedThumbIdx;
      postInvalidate();
      return true;
    default:
      // Nothing to do in this case.
  }

  return null;
}
 

@Test
public void testMoveThumbFocus_equalsMinus_correctThumbHasFocus() {
  slider.requestFocus();

  // Numpad Plus == Shift + Equals, at least in AVD.
  KeyEventBuilder equals = new KeyEventBuilder(KeyEvent.KEYCODE_EQUALS);
  KeyEventBuilder minus = new KeyEventBuilder(KeyEvent.KEYCODE_MINUS);

  sendKeyEventThereAndBack(equals, minus);
}
 
 方法所在类
 同类方法