gpt4 book ai didi

Android:如何在按下导航键时防止焦点改变?

转载 作者:行者123 更新时间:2023-11-30 04:40:12 25 4
gpt4 key购买 nike

因为一些特殊的原因,我不得不自己管理注意力。
在模拟器中,KeyEvent.KEYCODE_DPAD_DOWNUP 被指定为移动焦点。为了把事情做好,我制作了如下原型(prototype)

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 情况,KeyEvent.KEYCODE_DPAD_LEFT/RIGHT 不应停止。然后我必须让每个 View /小部件实现它们自己的 onKeyDown/Up,这很乏味。有没有更简单的方法来做到这一点?谢谢。

最佳答案

查看源代码后,最终我得到了以下解决方案,非常简单,

@Override
public boolean executeKeyEvent(KeyEvent event) {
return true;
}

简单地覆盖 ScrollView::executeKeyEvent 并返回 true

关于Android:如何在按下导航键时防止焦点改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com