我在Android应用程序中使用选项卡,其中一个选项卡包含listview。当我在列表的适配器中覆盖isEnabled然后尝试使用D-pad在列表中向上和向下移动到我的选项卡时,我注意到一些奇怪的行为。
如果启用了列表的第0项,那么一切都按预期工作 - 我可以向下移动列表,然后再向上移动,一旦我到达列表顶部,按下移动焦点到我的选项卡。< / p>
但是,如果第0项是DISABLED(我的适配器中的isEnabled返回false),那么当我按下位置1聚焦时,焦点会卡住。它没有像我预期的那样向上移动到选项卡,而是保持在列表的第1位。
有什么想法吗?
答案 0 :(得分:0)
覆盖onKeyDown(...)方法。检查向上键/向上滚球。如果禁用了以上所有列表项,请将焦点设置为选项卡。
注意:你可能不得不做同样的事情,我不确定。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:
if(/*all the above list items are disabled*/)
{
//focus on tab
}
}
return super.onKeyDown(keyCode, event);
}