我已将setIconified()
和setIconifiedByDefault()
定义为false,但默认情况下SearchView菜单项未展开。这是我实现它的方式:
View customTitle = getLayoutInflater().inflate(R.layout.toolbar_custom_title, null);
toolbar.inflateMenu(R.menu.menu_buddies);
toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
SearchView searchView = (SearchView) toolbar.getMenu().findItem(R.id.menu_search).getActionView();
searchView.setQueryHint("Search Buddies");
searchView.setIconified(false);
searchView.setIconifiedByDefault(false);
我的menu_buddies:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_search"
xmlns:pawesome="http://schemas.android.com/apk/res-auto"
android:title="@string/action_search"
android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
pawesome:showAsAction="always|collapseActionView"
pawesome:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
答案 0 :(得分:3)
您需要将android:showAsAction
的值更改为always
。 SearchView的属性android:iconifiedByDefault should
为true
。
答案 1 :(得分:2)
你解决了这个问题吗? 删除:
searchView.setIconified(false);
并且只保留这一行:
searchView.setIconifiedByDefault(false);
以及showAsAction =&#34;总是&#34;在menu-xml中。
这适用于我,搜索视图已展开,无论如何都无法折叠。
答案 2 :(得分:2)
上述答案都不适合我。
使用此
SearchManager searchManager = (SearchManager) mActivity.getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = new SearchView(mActivity.actionBar.getThemedContext());
searchView.setSearchableInfo(searchManager.getSearchableInfo(mActivity.getComponentName()));
searchView.setIconifiedByDefault(false);
searchView.setQueryHint("search");
menu.findItem(R.id.action_search).setActionView(searchView);