强制操作栏显示搜索视图

时间:2012-07-13 20:55:15

标签: android android-actionbar android-3.0-honeycomb android-4.0-ice-cream-sandwich

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

<item android:id="@+id/menu_search"
          android:title="Search"
          android:showAsAction="never|collapseActionView"
          android:actionViewClass="android.widget.SearchView" />

但是我有一个3-tab活动,我希望SearchView能够随时扩展 我怎么能这样做?

1 个答案:

答案 0 :(得分:63)

需要两个步骤。

首先,您必须确保搜索菜单项始终显示为操作,并且永远不会移动到溢出菜单中。要实现此目的,请将搜索菜单项的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;
}

应该这样做。