强制操作栏显示搜索视图

Kor*_*oly 22 android android-3.0-honeycomb android-4.0-ice-cream-sandwich android-actionbar

我可以通过这样的动作扩展搜索视图

<item android:id="@+id/menu_search"
          android:title="Search"
          android:showAsAction="never|collapseActionView"
          android:actionViewClass="android.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

但我有一个3-tab活动,我想SearchView总是扩展我该怎么办?

Jon*_*nas 63

需要两个步骤.

首先,您必须确保搜索菜单项始终显示为操作,并且永远不会移动到溢出菜单中.要实现此目的,请将搜索菜单项的showAsAction属性设置为always:

<item
    android:id="@+id/menu_search"
    android:title="Search"
    android:showAsAction="always"
    android:actionViewClass="android.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

其次,确保默认情况下动作视图未以图标化(即折叠)模式显示.要执行此操作,请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;
}
Run Code Online (Sandbox Code Playgroud)

应该这样做.