Android SearchView设置默认展开

时间:2015-11-17 12:24:30

标签: android android-layout android-studio searchview

我目前正在使用最低API等级为8的Android Studio开发一个简单的应用程序,现在我正在android.support.v7.widget.SearchView LinearLayout布局中使用content_main.xml,而不是{{1}现在的问题是,我默认情况下无法将searchView设置为ACTIONBAR,我已经找到了解决方案,我只得到了这个:

Expanded

这是我的searchView的完整代码

android:iconifiedByDefault="false"

但没有运气,它不起作用。谁有人可以帮助我?任何帮助,将不胜感激。非常感谢你!

3 个答案:

答案 0 :(得分:26)

好的,我解决了这个问题。对于想要在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

感谢您的帮助!!!

答案 1 :(得分:5)

我使用以下代码展开搜索视图并将光标放在同一时间:

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

答案 2 :(得分:1)

要使SearchView在默认情况下展开,请在初始化时调用setIconifiedByDefault(false)(例如在onCreate(..)中。我发现在大多数情况下这会自动聚焦,但如果不是简单的调用requestFocus()也在它上面。