How to clear focus for EditText?
我有一个活动,顶部有一个搜索框(
没有其他文本视图可以有焦点。
我希望EditText只在用户触摸并开始输入时才有焦点。 我尝试将
在父布局中设置下一个属性:
1 2 3 4 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainLayout" android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true"> |
而现在,当
我们也可以在运行时从子视图中删除焦点(例如在完成子编辑后):
1 | findViewById(R.id.mainLayout).requestFocus(); |
要么
查看AndroidManifest.xml元素。
1 | android:windowSoftInputMode="stateHidden" |
进入活动时,它总是隐藏键盘。
您必须在XML中的
您可以在容器视图上使用set focus。添加到容器android:focusableInTouchMode ="true",android:focusable ="true"和标记requestFocus示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <RelativeLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:focusableInTouchMode="true" android:focusable="true"> <requestFocus/> <EditText android:id="@+id/edit_text_id" android:layout_width="match_parent" android:layout_height="wrap_content"/> </RelativeLayout> |
你可以试试这个:
1 | editText.clearFocus(); |
你想要清除焦点的地方。
在EditText的父布局中添加android:focusable ="true"和android:focusableInTouchMode ="true"元素,如下所示;
1 2 3 4 5 | android:id="@+id/linearLayout7" android:layout_width="fill_parent" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true"> |
我想,它应该对你有帮助。
这是EditText的答案,明确注重外界的触摸。
或者您可以编写仅显示带有textView的文本的窗口小部件,
试试这个
在
1 | android:windowSoftInputMode="stateHidden" |
当活动变得可见时,它将阻止键盘弹出。
快乐编码:)
这将做你的工作: