选项菜单 - 从项目中删除焦点

时间:2010-10-17 10:55:04

标签: android menu options-menu

如何从选项菜单项中删除焦点?即当我第一次打开菜单时,没有任何项目具有焦点。但是,如果我使用跟踪球专注于其中一个,然后关闭并重新打开菜单,焦点仍然存在。我该如何摆脱它?

我正在onPrepareOptionsMenu清除并重新创建菜单(因为我必须将其调整为当前活动状态)。

修改

public boolean onPrepareOptionsMenu(Menu menu){
    menu.clear();

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.my_menu, menu);

    return true;
}

1 个答案:

答案 0 :(得分:0)

使用轨迹球(或者确实按下键盘上的任何其他键)后,退出touch mode。从那时起,将会有一些具有焦点的视图(您可以通过调用Activity.getCurrentFocus()来看到这一点)。此模式一直持续到您再次触摸屏幕,此时您将重新进入触摸模式,当您在后续场合打开菜单时,将不会有焦点项目。这种情况发生在我用菜单看到的每个Android应用程序中。

这种情况不仅存在于选项菜单项中,还存在于布局中的视图中。一旦你离开触摸模式,我认为没有办法再次输入它(因此从所有视图中删除焦点),除非你触摸屏幕。我所看到的用于去除焦点的可见效果(当不处于触摸模式时)的解决方案是简单地将其提供给不可见的元素。您是否可以创建一个隐藏的菜单选项,并在想要清除它时将其设置为焦点?

除非你找到一种编程方式,可靠地进入触摸模式或从所有视图中删除焦点(调用View.clearFocus()只是将其传递到另一个视图!),这可能是你最好的选择。