Android SearchView 设置为默认展开

Android SearchView set Expanded by default

我目前正在使用 Android Studio 开发一个简单的应用程序,最低 API 级别 8,现在我在 LinearLayout 中使用 android.support.v7.widget.SearchView 14=] 布局,不在 ACTIONBAR 上,现在的问题是,我无法将 searchView 默认设置为 Expanded,我已经在寻找解决方案,但我只得到了这个:

android:iconifiedByDefault="false"

这是我的 searchView

的完整代码
          <android.support.v7.widget.SearchView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/searchView"
            android:background="#00000000"
            android:iconifiedByDefault="false"
            android:layout_weight="1" />

但运气不好,它不起作用。任何人都可以帮助我吗?任何帮助,将不胜感激。非常感谢!

要使 SearchView 默认展开,请在初始化时对其调用 setIconifiedByDefault(false)(例如在 onCreate(..) 中)。我发现在大多数情况下这会自动为其提供焦点,但如果不是也只需对其调用 requestFocus() 即可。

我使用下面的代码来扩展搜索视图并同时放置光标:

final SearchView sv = new SearchView(((MainActivity) getActivity()).getSupportActionBar().getThemedContext());
        sv.setIconifiedByDefault(true);
        sv.setFocusable(true);
        sv.setIconified(false);
        sv.clearFocus();
        sv.requestFocusFromTouch();

好的,所以我解决了这个问题。对于任何想要使用 SearchView 支持库的人,这里是自定义它的方法。

<android.support.v7.widget.SearchView
    android:id="@+id/searchView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:closeIcon="@drawable/ic_clear" // To set custom clear icon
    app:searchIcon="@drawable/ic_search" //To set custom search icon
    app:queryBackground="@color/transparent" // i decided to remove underline so i create a custom background for my searchView
    app:queryHint="@string/filterHint" //to set a custom Hint
    app:iconifiedByDefault="false" //And finally, to Expand it as default
/>

正如我所说,我害怕通过 java 代码在运行时覆盖 xml 布局,因此为了使其在运行时组织起来并且不再覆盖,我就是这样做的.

Reference

感谢帮助!!!