-1

私はSearchViewを宣言しました:

SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setQueryHint("some text");

私の目標は、ボタンがクリックされた後にのみ、この検索ビューをアクションバーに追加することです。メニューボタンではありません。レイアウト内の通常のボタン。

4

2 に答える 2

2

onCreateOptionsMenu で:

SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setQueryHint("some text");

smenu=menu.add("smenu").setVisible(false).setActionView(searchView);
smenu.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

次に onClickListener で:

smenu.expandActionView();

また

smenu.collapseActionView();
于 2013-02-07T13:34:51.663 に答える
0

これはうまくいくはずです

private ActionBar bar;

//....

SearchView searchView = new SearchView(bar.getThemedContext());
searchView.setQueryHint("some text");
searchView.setIconified(false);
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
    // revert to normal menu
    bar.setDisplayOptions(your_opions);
    invalidateOptionsMenu();
});

//...

@Override
public void onClick(View v) {
    // show custom view
    bar.setDisplayOptions(your_opions | ActionBar.DISPLAY_SHOW_CUSTOM);
    bar.setCustomView(searchView);

}
于 2013-02-07T13:18:09.703 に答える