两个步骤是必要的。
首先,您必须确保您的搜索菜单项始终显示为一个操作,并且永远不会进入溢出菜单。为了实现这一目标设定的搜索菜单项的showAsAction
属性always
:
<item
android:id="@+id/menu_search"
android:title="Search"
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView" />
第二,确保行动的观点并没有在图标化显示默认情况下(即折叠)模式。要在您的搜索视图实例上执行此操作,请拨打setIconifiedByDefault(false)
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.my_activity, menu);
MenuItem searchViewItem = menu.findItem(R.id.menu_search);
SearchView searchView = (SearchView) searchViewItem.getActionView();
[...]
searchView.setIconifiedByDefault(false);
return true;
}
应该这样做。
获得NPE在行搜索searchView.setIconifiedByDefault我已经使用此代码SearchView searchView =(SearchView)menu.findItem(R.id.menu_search).getActionView(); searchView.setIconifiedByDefault(false); – Erum 2015-09-02 07:34:33
如果您使用的是AppCompat SearchView,请尝试通过MenuItemCompat.getActionView(menu.findItem(R.id.menu_search))获取SearchView – 2016-09-16 15:09:45