默认情况下显示Android SearchView EditText

6
我在android中使用SearchView。当我第一次进入页面时,只能看到搜索图标。然后当我点击图标时,EditText出现了。我如何让EditText一开始就可见呢?这是我的xml代码:
<SearchView
        android:id="@+id/search"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:queryHint="@string/search_hint"
        android:textSize="16sp" />
4个回答

3

编辑---

哦,对不起!我以为你想进行“空”查询。 我认为您可以使用以下方式以编程方式打开SearchView:

searchView.setIconified(false);

旧版回答--

在活动中,您可以尝试使用以下方法:

onSearchRequested();

在Fragment中,您可以尝试使用以下代码:

getActivity().onSearchRequested();

祝你好运!


谢谢。我来这里发布我的答案:“android:iconifiedByDefault =”false“”。你先得到了它。谢谢。 - user3093402
你知道这个后续问题的答案吗?http://stackoverflow.com/questions/20981613/setting-iconified-to-false-on-android-searchview-cause-view-to-not-be-searchable - user3093402

1
你可以尝试这个:

SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
// Expand the search view
searchItem.expandActionView();

感谢。

1

来自官方Android文档

如果您希望搜索字段始终可见,则调用 setIconifiedByDefault(false)。

对于兼容的 android.support.v7.widget.SearchView,这也适用


0

你还需要为点击事件设置该属性

searchView.setIconified(false);
        searchCloseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                searchEditText.setText("");
                ((SearchView) findViewById(R.id.search_view)).setIconified(false);
            }
        });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接