如何从SearchView中删除焦点?

Pra*_*ukh 26 android focus searchview

我想从删除焦点和文本SearchViewonResume().

我试过searchView.clearFocus()但它不起作用.

这是我的xml代码:

<SearchView
    android:id="@+id/searchView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/toolbar"
    android:layout_alignTop="@+id/toolbar"
    android:layout_centerVertical="true"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:iconifiedByDefault="false"
    android:paddingLeft="16dp"
    android:paddingRight="16dp" />
Run Code Online (Sandbox Code Playgroud)

ear*_*jim 49

我想从删除焦点和文本SearchViewonResume()

要做到这一点,你可以设置你的根布局可聚焦与android:focusableInTouchMode属性,并要求关注那些ViewonResume().

例如:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:focusableInTouchMode="true">

    <SearchView
        android:id="@+id/search_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:iconifiedByDefault="false"/>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

然后在你的Activity:

private View rootView;
private SearchView searchView;

// ...

@Override
protected void onCreate(Bundle savedInstanceState) {

    // ...

    rootView = findViewById(R.id.root_layout);
    searchView = (SearchView) findViewById(R.id.search_view);
}

@Override
protected void onResume() {
    super.onResume();

    searchView.setQuery("", false);
    rootView.requestFocus();
}
Run Code Online (Sandbox Code Playgroud)


小智 17

当在活动中转到父布局时,fragment也在同样的事情中做同样的事情framelayout.只需添加此属性:

android:focusableInTouchMode="true"
Run Code Online (Sandbox Code Playgroud)


Ced*_*iga 10

在您的 SearchView 小部件中,只需添加

  android:focusable="false"
Run Code Online (Sandbox Code Playgroud)

完整的小部件代码

    <android.support.v7.widget.SearchView
        android:id="@+id/your_search_view_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:iconifiedByDefault="false"
        app:queryHint="Search something..." 
        android:focusable="false" />
Run Code Online (Sandbox Code Playgroud)


Mas*_*sum 8

在onResume方法中使用这行代码

if (searchView != null) {
    searchView.setQuery("", false);
    searchView.clearFocus();
    searchView.onActionViewCollapsed();
}
Run Code Online (Sandbox Code Playgroud)