此文档是个人开发经历,仅保证自己回顾,他人阅读价值较低。。
需求:做一个表单填写,在ListView中嵌套EditText进行,其中一项为性别,需要在点击触发弹窗选择性别,而不是弹出软键盘
思路1:设置Enable
结果:不弹出焦点也不能响应点击事件
思路2:焦点禁用
结果:第二项Item功能正常,第一项无法获取焦点
解决方式:
//-------------------------------
大多数控件都可以获取焦点,也就是处在选中状态。如果android:focusable属性值为true,表示可以通过键盘(虚拟键盘或物理键盘)或轨迹球将焦点移动到当前控件上。如果设置该属性为false,则无法将焦点移到当前控件。
在默认情况下,触摸一个按钮虽然可以触发控件的单击事件,但无法使控件处在焦点状态。而将android:focusableInTouchMode属性设置为true,当触摸值设为ture,当触摸某个控件时,会先将焦点移动到被触摸的控件上,然后需要再触摸该控件才会响应单击事件。但要注意,需要将android:focusable属性设置为true,当前控件菜可以获得焦点,否则当前控件无论使用任何方式都无法获取焦点。
-----------------------------------------------------
focusable表示 移动光标时 是否能聚焦到组件上,比如按钮,就是移动光标是按钮会变成选中状态,如果focusable为false,那么就跳过此 组件,下一个组件变成选中状态。
focusableInTouchMode可以通过触摸获取焦点。
-------------------------------------------------