2012-06-14 16 views
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が提供するビューです。

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

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

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

答えて

14

ソースドキュメントを読んだ後、私は最終的に自分で答えを見つけました。 menuItem.expandActionView() MenuItemには次のフラグを設定している場合にのみ有効になります。そこに誰かを助けsearchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

希望を!

+0

アクションバーの全幅に合わせて検索ボックスを拡張できましたか? –

+1

アクションバーのSherlock検索ビューや上記の独自のカスタムビューを使用していたのですか? – pjv

+0

唯一の違いは、setShowAsActionの変更で、ビューはまだアクションバーsherlockによって提供された検索ビュー – user1033552

関連する問題