我希望能够从EditText删除焦点。例如,如果键盘出现,用户用后退按钮隐藏它,我希望焦点和光标消失。怎样才能做到呢?


当前回答

在评论中,你问是否可以聚焦另一个视图而不是EditText。是的,它可以。使用.requestFocus()方法用于你想在开始时聚焦的视图(在onCreate()方法中)

同样聚焦其他视图也会减少一些代码。(例如隐藏键盘的代码)

其他回答

将这两个属性添加到你的父布局(例如:线性布局,相对布局)

android:focusable="true"
android:focusableInTouchMode="true" 

它会成功的:)

你必须删除<requestFocus/>

如果你不使用它,还是同样的问题

user LinearLayout作为父类并设置

android:focusable="true"
android:focusableInTouchMode="true"

希望对你有所帮助。

editText.setFocusableInTouchMode(true)

EditText将能够在用户触摸它时获得焦点。 当主布局(活动,对话框等)变得可见时,EditText不会自动获得焦点,即使它是布局中的第一个视图。

在XML中的EditText之前添加LinearLayout。

<LinearLayout 
    android:focusable="true"
    android:focusableInTouchMode="true" 
    android:clickable="true"
    android:layout_width="0px"
    android:layout_height="0px" />

或者你也可以在'EditText'之前添加这些行来查看。

<Button
    android:id="@+id/btnSearch"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:gravity="center"
    android:text="Quick Search"
    android:textColor="#fff"
    android:textSize="13sp"
    android:textStyle="bold" />

<EditText
    android:id="@+id/edtSearch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="5dp"
    android:gravity="left"
    android:hint="Name"
    android:maxLines="1"
    android:singleLine="true"
    android:textColorHint="@color/blue"
    android:textSize="13sp"
    android:textStyle="bold" />

在评论中,你问是否可以聚焦另一个视图而不是EditText。是的,它可以。使用.requestFocus()方法用于你想在开始时聚焦的视图(在onCreate()方法中)

同样聚焦其他视图也会减少一些代码。(例如隐藏键盘的代码)