android – 选项菜单 – 从项目中删除焦点

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

我正在清理并重新创建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()只是将它传递到另一个视图!),这可能是你最好的选择.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...