700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java hasfocus_Java KeyEvent.hasNoModifiers方法代碼示例

java hasfocus_Java KeyEvent.hasNoModifiers方法代碼示例

时间:2023-05-23 21:56:44

相关推荐

java hasfocus_Java KeyEvent.hasNoModifiers方法代碼示例

import android.view.KeyEvent; //導入方法依賴的package包/類

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// We need to handle focus change within the SimpleMonthView because we are simulating

// multiple Views. The arrow keys will move between days until there is no space (no

// day to the left, top, right, or bottom). Focus forward and back jumps out of the

// SimpleMonthView, skipping over other SimpleMonthViews in the parent ViewPager

// to the next focusable View in the hierarchy.

boolean focusChanged = false;

switch (event.getKeyCode()) {

case KeyEvent.KEYCODE_DPAD_LEFT:

if (event.hasNoModifiers()) {

focusChanged = moveOneDay(isLayoutRtl());

}

break;

case KeyEvent.KEYCODE_DPAD_RIGHT:

if (event.hasNoModifiers()) {

focusChanged = moveOneDay(!isLayoutRtl());

}

break;

case KeyEvent.KEYCODE_DPAD_UP:

if (event.hasNoModifiers()) {

ensureFocusedDay();

if (mHighlightedDay > 7) {

mHighlightedDay -= 7;

focusChanged = true;

}

}

break;

case KeyEvent.KEYCODE_DPAD_DOWN:

if (event.hasNoModifiers()) {

ensureFocusedDay();

if (mHighlightedDay <= mDaysInMonth - 7) {

mHighlightedDay += 7;

focusChanged = true;

}

}

break;

case KeyEvent.KEYCODE_DPAD_CENTER:

case KeyEvent.KEYCODE_ENTER:

if (mHighlightedDay != -1) {

onDayClicked(mHighlightedDay);

return true;

}

break;

case KeyEvent.KEYCODE_TAB: {

int focusChangeDirection = 0;

if (event.hasNoModifiers()) {

focusChangeDirection = View.FOCUS_FORWARD;

} else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) {

focusChangeDirection = View.FOCUS_BACKWARD;

}

if (focusChangeDirection != 0) {

final ViewParent parent = getParent();

// move out of the ViewPager next/previous

View nextFocus = this;

do {

nextFocus = nextFocus.focusSearch(focusChangeDirection);

} while (nextFocus != null && nextFocus != this &&

nextFocus.getParent() == parent);

if (nextFocus != null) {

nextFocus.requestFocus();

return true;

}

}

break;

}

}

if (focusChanged) {

invalidate();

return true;

} else {

return super.onKeyDown(keyCode, event);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。