如何清除EditText的焦点?

Tax*_*Noi 38 android android-edittext

我在顶部EditText有一个搜索框(ListView),下面有一个ListView.每当活动开始时,EditText始终具有焦点并调出部分覆盖的键盘clearFocus().

没有别的onCreateView可以集中精力.我希望EditText只在用户触摸并开始输入时才有焦点.我尝试将clearFocus()放入onViewCreated,onCreated或者EditText,但没有运气.

Aja*_*y S 109

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:descendantFocusability="beforeDescendants"
    android:focusableInTouchMode="true" >
Run Code Online (Sandbox Code Playgroud)

现在,当activity开始这个布局获得默认焦点.

我们也可以在运行时从子视图中删除焦点(例如在完成子编辑后):

findViewById(R.id.mainLayout).requestFocus();
Run Code Online (Sandbox Code Playgroud)

要么

查看AndroidManifest.xml元素.

android:windowSoftInputMode="stateHidden"
Run Code Online (Sandbox Code Playgroud)

进入活动时,它总是隐藏键盘.


小智 6

您可以在容器视图上使用设置焦点。添加到容器android:focusableInTouchMode="true"android:focusable="true"和标签requestFocus示例:

<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>
Run Code Online (Sandbox Code Playgroud)