• SearchView监听关闭正确方案


     SearchView往往需要在关闭的时候清除筛选的数据后加载全部数据,但是oncloseListener在高版本的andorid是不起作用的 ,正确的做法应该是取得searchview中那个close的按钮 即末尾的x按钮,监听点击事件即可

     //监听关闭按钮点击事件
            final ImageView mCloseButton = mSearchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
            if (mCloseButton.isClickable()) {
                mCloseButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        //清除搜索框并加载默认数据
                        mSearchView.clearFocus();
                        mSearchView.onActionViewCollapsed();
                        datas.clear();
                        loadDatas(app.getDb());
    
                    }
                });
            }
    

      其中clearFocus()和 onActionViewCollapsed()调用是为了让SearchView 关闭 ,如果反复搜索关闭出现输出法中没有搜索按钮的情况,可以在searchView获得焦点的时候调用mSearchView.onActionViewExpanded();即可正常操作

    其余的比如通过MenuItem.setOnActionExpandListener在独立使用的时候并没有生效配合toolbar应该是可以的(未验证)

  • 相关阅读:
    接口
    java基础
    java的反射
    按照字典序打印所有的字符串
    求幂的问题
    时间复杂度与空间复杂度
    孩子们的游戏(圆圈中最后剩下的数)
    约瑟夫环问题
    翻转单词顺序列
    复杂链表的复制
  • 原文地址:https://www.cnblogs.com/yjpjy/p/10169542.html
Copyright © 2020-2023  润新知