web-dev-qa-db-ja.com

強制アクションバー表示検索ビュー

このようなアクションで検索ビューを拡大することができます

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

しかし、3タブのアクティビティがあり、SearchViewを常に展開したいのですが、どうすればよいですか?

22

2つのステップが必要です。

まず、検索メニュー項目が常にアクションとして表示され、オーバーフローメニューに移動しないようにする必要があります。これを実現するには、検索メニュー項目の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;
}
_

それはそれをする必要があります。

63
Jonas