在开发Android盒子应用时,经常需要使用EditText来监听用户的输入,并且当用户输入Enter键时,获取用户输入的数据发起服务请求.然后进入下一轮的监听。到时很多时候,Enter键后,EditText的输入焦点会被切换到下一个控件,导致监听失败.
通过以下技巧可以尽量保留EditText的输入焦点
1.<requestFocus/> 声明确保在首次进入页面时,EditText能获取到焦点
2.将当前控件的id赋值给android:nextFocusDown="@id/handover_credentials"属性
3.如果存在其他的控件争用焦点(例如父布局),使用
android:focusable="false"
android:clickable="false"
移除其他控件的[获取焦点或者点击] 功能.
<EditText
android:id="@+id/handover_credentials"
android:layout_width="1dp"
android:layout_height="1dp"
android:nextFocusDown="@id/handover_credentials">
<requestFocus/>
</EditText>
网友评论