5

アクションバーシャーロックを使用しています。起動時に表示されるアクティビティは、すぐに検索を開始するために「検索モード」で開始する必要があります。そのために、次のコードを使用します。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);

    //collapse search
    MenuItem searchItem = menu.add(Menu.NONE, R.string.inlineSearch, Menu.NONE, getString(R.string.inlineSearch)).setIcon(R.drawable.menu_search);
    searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    searchView = new SearchView(this);
    searchItem.setActionView(new SearchView(this));
    searchItem.expandActionView();
    return true;
}

SearchView は Android / Actionbar Sherlock が提供する View です。

私が直面している問題は、何をしても、アイテムが起動時に展開されないことです。別のアクションバー項目を使用して、起動後に expandActionView メソッドを呼び出してみましたが、何も変わりませんでした。CollapsibleActionView を実装する独自のビューを実装しましたが、メソッド onActionViewExpanded() および onActionViewCollapsed() が呼び出されません。

しかし、SearchView の折りたたまれたボタンをクリックすると、期待どおりにビューが展開されます。

私が間違っていることを誰かが知っていますか?ご協力いただきありがとうございます!

4

1 に答える 1

14

ソースドキュメントを調べた後、ついに自分で答えを見つけました。 menuItem.expandActionView()MenuItem に次のフラグが設定されている場合にのみ有効です。searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

誰かがそこに役立つことを願っています!

于 2012-06-14T12:55:15.117 に答える