-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 回答