如何解决Android:如何防止在按导航键时更改焦点?
| 出于某些特殊原因,我必须独自处理所有焦点。 在仿真器中,分配了“ 0”和“ 1”来移动焦点。为了正确起见,我的原型如下public class Button extends android.widget.Button {
public Button(Context context) {
super(context);
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event) {
if (isPreventSystemBehavior(keyCode)) {
return true;
}
return super.onKeyDown(keyCode,event);
}
@Override
public boolean onKeyUp(int keyCode,KeyEvent event) {
if (isPreventSystemBehavior(keyCode)) {
return true;
}
return super.onKeyUp(keyCode,event);
}
private boolean isPreventSystemBehavior(int keyCode) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_DOWN:
case KeyEvent.KEYCODE_DPAD_UP:
case KeyEvent.KEYCODE_DPAD_LEFT:
case KeyEvent.KEYCODE_DPAD_RIGHT:
return true;
}
return false;
}
}
有效。但是对于EditText
情况,,4ѭ不应停止。然后,我必须让每个视图/小部件实现自己的onKeyDown / Up,这很繁琐。
有没有更简单的方法可以做到这一点?
谢谢。
解决方法
签出源代码之后,最终我得到了以下解决方案,非常简单,
@Override
public boolean executeKeyEvent(KeyEvent event) {
return true;
}
只需覆盖ScrollView :: executeKeyEvent并返回true
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。