如何从选项菜单项中删除焦点?即当我第一次打开菜单时,没有任何项目有焦点.但是,如果我使用跟踪球专注于其中一个,然后关闭并重新打开菜单,焦点仍然存在.我怎么摆脱它?
我正在清理并重新创建onPrepareOptionsMenu中的菜单(因为我必须将其调整为当前活动状态).
编辑:
public boolean onPrepareOptionsMenu(Menu menu){ menu.clear(); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.my_menu,menu); return true; }
解决方法
一旦你使用轨迹球(或者确实按下键盘上的任何其他键),你退出
touch mode.从那时起,将有一些具有焦点的视图(你可以通过调用Activity.getCurrentFocus()来看到这一点).此模式一直持续到您再次触摸屏幕为止,此时您将重新进入触摸模式,当您在后续场合打开菜单时,将不会有焦点项目.这种情况发生在我用菜单看到的每个Android应用程序中.
这种情况不仅存在于选项菜单项中,还存在于布局中的视图中.一旦你离开触摸模式,我认为没有办法再次输入它(因此从所有视图中删除焦点),除非你触摸屏幕.我所看到的用于去除焦点的可见效果(当不处于触摸模式时)的解决方案是简单地将其赋予不可见的元素.您是否可以创建一个不可见的菜单选项,并在想要清除它时给它重点?
除非你找到一种编程方式,可靠地进入触摸模式或从所有视图中删除焦点(调用View.clearFocus()只是将它传递到另一个视图!),这可能是你最好的选择.