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

Asa*_*ahi 8 android menu options-menu

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

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

编辑:

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

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

    return true;
}
Run Code Online (Sandbox Code Playgroud)

ant*_*nyt 0

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

这种情况不仅存在于选项菜单项,也存在于布局中的视图。一旦你离开触摸模式,我认为没有办法再次进入它(从而从所有视图中移除焦点),除非你触摸屏幕。我见过的一个用于消除焦点可见效果(不在触摸模式下)的解决方案是简单地将其赋予不可见的元素。您可以创建一个不可见的菜单选项并在您想要清除它时为其提供焦点吗?

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