myComponent.setFocusable(false); myComponent.setFocusableInTouchMode(true);
然后我看了their documentation:
public void setFocusable (boolean focusable)
Set whether this view can receive the focus. Setting this to false will also ensure that this view is not focusable in touch mode.
public void setFocusableInTouchMode (boolean focusableInTouchMode)
Set whether this view can receive focus while in touch mode. Setting this to true will also ensure that this view is focusable.
解决方法
>调用setFocusableInTouchMode(true)将确保设置FOCUSABLE标志.
>调用setFocusable(false)将确保清除FOCUSABLE_IN_TOUCH_MODE标志.
换句话说,FOCUSABLE_IN_TOUCH_MODE取决于全局FOCUSABLE标志,如果没有它,则无法设置.
模式的区别有点遗留.我们的想法是区分用户何时使用D-pad或轨迹球导航UI而不是点击触摸屏.目前,设备几乎总是处于“触摸模式”,但仍有少数情况会检查基础FOCUSABLE标志.主要是从输入法的返回键或打开辅助功能时搜索“下一个”视图.
有关不同模式的更多详细信息,您可以阅读SDK View Documentation的“焦点处理”和“触摸模式”部分.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。