13

次のようなアクションバーを実行したい:

アクションバー

私はこれを行うことができません。

hereで説明されている崩壊物を使用しようとしましたが、それはまさに私が望むものではありません。

  • まず、ユーザーが検索アイコンを押すまで SearchView は表示されませんが、アクティビティが開始された直後に表示されるようにします。
  • 第二に、SearchView が表示された後、他のすべてのアクション アイコンが消えます。
  • Android 3以降でのみ機能します.Android 2以降で使用したいので、ActionBarSherlockを使用しています。

たとえば、Google マップのアクション バーは、私が望むものと似ています。

誰かがこれを達成する方法を教えてもらえますか?

4

2 に答える 2

14

ActionbarSherlockは素晴らしいライブラリです。最新(4.2.0)リリースには、アクティビティの開始時に検索ビューを表示するメソッドがありますSearchView.setIconified(boolean);

したがって、検索ビューを常に表示したい場合は、次のコードを使用する必要があります。

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

    //Create the search view
    SearchView searchView = new SearchView(getSherlockActivity().getSupportActionBar().getThemedContext());
    searchView.setQueryHint("Search for countries…");
    searchView.setIconified(false);

    menu.add("Search")
            .setIcon(R.drawable.abs__ic_search)
            .setActionView(searchView)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);


}
于 2012-11-19T12:14:42.840 に答える
6

actionbarsherlock を使用している場合は、次のように smth を実行する必要があります

 @Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    menu.add(0, 1, 1, R.string.ac_refresh ).setIcon(R.drawable.ic_navigation_refresh).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    menu.add(0, 2, 2, R.string.ac_settings).setIcon(R.drawable.ic_action_settings).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    menu.add(0, 3, 3, R.string.ac_favourite).setIcon(isFavouriteChannel(channel) ? R.drawable.ic_rating_important : R.drawable.ic_rating_not_important).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    menu.add(0, 4, 4,  R.string.ac_search  ).setIcon(R.drawable.ic_action_search).setActionView(R.layout.action_search)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

    return super.onCreateOptionsMenu(menu);
}

setActionView(R.layout.action_search) を見てください - これは xml ファイルのテキスト ビューです。他のアクションアイコンを常に表示したい場合は、使用する必要がありますMenuItem.SHOW_AS_ACTION_ALWAYS

于 2012-07-09T13:33:58.667 に答える