我在搜索菜单的操作栏中使用了Sherlock搜索视图小部件。用于初始化搜索视图的代码段
MenuItem item = menu.findItem(R.id.menu_search);
item.expandActionView();
mSearchView = (SearchView) item.getActionView();
mSearchView.setIconifiedByDefault(false);
mSearchView.setQuery(query, false);
mSearchView.clearFocus();
上面的代码显示了使用默认搜索查询的扩展搜索视图。问题是,当我按下后退按钮时,搜索视图会再次折叠,然后返回到android中的上一个活动。我不希望搜索视图在后退按键时折叠。如何防止搜索视图在后退按键上折叠?
答案 0 :(得分:0)
在搜索视图打开时添加一个布尔值,如下所示
private Boolean isSearchPageIsOpen = true;
然后添加偶数按钮后退按钮
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if(isSearchPageIsOpen ){
do something here
}
return false;
答案 1 :(得分:0)
SearchView.setIconifiedByDefault(false)
,则 android:showAsAction="always"
就足够了。
以下代码段适用于我:
<强> default_options.xml 强>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
<item android:id="@+id/action_search"
android:title="@string/search"
android:icon="@drawable/topbar_busqueda"
androidshowAsAction="always"
android:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
<强>活动强>
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.default_options menu);
MenuItem menuItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) menuItem.getActionView();
prepareSearchViewAdapter(searchView, menuItem);
super.onCreateOptionsMenu(menu, inflater);
}
private void prepareSearchViewAdapter(final SearchView searchView, MenuItem menuItem) {
searchView.setIconifiedByDefault(false);
}