【问题标题】:how to disable the collapsing of search view on back key pressed android如何在按下后退键的android上禁用搜索视图的折叠
【发布时间】:2013-04-24 10:46:44
【问题描述】:

我在搜索菜单的操作栏中使用了 Sherlock 搜索视图小部件。用于初始化搜索视图的代码 sn -p

        MenuItem item = menu.findItem(R.id.menu_search);
    item.expandActionView();
    mSearchView = (SearchView) item.getActionView();
    mSearchView.setIconifiedByDefault(false);
    mSearchView.setQuery(query, false);
    mSearchView.clearFocus();

上面的代码显示了带有默认搜索查询的扩展搜索视图。问题是当我按下后退按钮时,搜索视图再次折叠,然后返回到 android 中的先前活动。我不希望搜索视图在后退键按下时折叠。如何防止搜索视图在返回键按下时折叠?

【问题讨论】:

  • 以上帖子与我的问题不同。我的搜索视图在返回键按下时折叠。我必须禁用此默认行为。我不希望搜索视图折叠,它应该总是展开?有什么建议吗?
  • 你得到这个答案了吗?

标签: android actionbarsherlock searchview


【解决方案1】:

如果您在菜单xml中设置了android:showAsAction="always"属性,SearchView.setIconifiedByDefault(false)就足够了。

以下 sn-p 对我有用:

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);
}

【讨论】:

  • 在 2020 年仍然可以使用 androidx.appcompat.widget.SearchView。我的搜索视图不在菜单中,所以我不需要设置showAsAction="always"
【解决方案2】:

当搜索视图像这样打开时添加一个布尔值

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;

【讨论】:

  • 搜索视图后按不调用 onKeydown Overriden 方法
猜你喜欢
  • 2013-05-16
  • 2018-01-17
  • 2013-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
相关资源
最近更新 更多