我有一个 Activity ,其中的搜索框(EditText)在顶部,而ListView在下面。每当 Activity 开始时,EditText始终会集中焦点并调出部分覆盖ListView的键盘。

没有其他可以聚焦的文本 View 。
我希望EditText仅在用户触摸它并开始键入时才具有焦点。我尝试将clearFocus()放入onCreateViewonViewCreatedonCreated中,但是没有运气。

最佳答案

在父级布局中设置下一个属性:

<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/

10-13 07:55
查看更多