我有一个 Activity ,其中的搜索框(EditText
)在顶部,而ListView在下面。每当 Activity 开始时,EditText始终会集中焦点并调出部分覆盖ListView
的键盘。
没有其他可以聚焦的文本 View 。
我希望EditText仅在用户触摸它并开始键入时才具有焦点。我尝试将clearFocus()
放入onCreateView
,onViewCreated
或onCreated
中,但是没有运气。
最佳答案
在父级布局中设置下一个属性:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true" >
现在,当
activity
开始时,此布局将获得默认焦点。我们也可以在运行时(例如,在完成子级编辑后)从子级 View 中移除焦点:
findViewById(R.id.mainLayout).requestFocus();
或者
查看AndroidManifest.xml元素。
android:windowSoftInputMode="stateHidden"
进入 Activity 时,它总是隐藏键盘。
关于android - 如何清除EditText的焦点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14424654/