私はSearchViewを宣言しました:
SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setQueryHint("some text");
私の目標は、ボタンがクリックされた後にのみ、この検索ビューをアクションバーに追加することです。メニューボタンではありません。レイアウト内の通常のボタン。
私はSearchViewを宣言しました:
SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setQueryHint("some text");
私の目標は、ボタンがクリックされた後にのみ、この検索ビューをアクションバーに追加することです。メニューボタンではありません。レイアウト内の通常のボタン。
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();
これはうまくいくはずです
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);
}