微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

按代码关闭SearchviewAndroid:androidx.appcompat.widget

如何解决按代码关闭SearchviewAndroid:androidx.appcompat.widget

我在操作栏中有一个Searchview,对此我希望有一种特殊的行为,但无法实现。 单击搜索时,操作栏中会出现一个编辑字段。 在搜索编辑字段中键入内容时,键入时将即时显示结果列表。

到目前为止很好,这是认行为。

否,当我从列表中选择任何结果时,我想关闭搜索栏,但是当前搜索栏一直显示在操作栏中。

如何通过代码关闭搜索字段? (与单击关闭图标相同的行为)

插图: 认情况下,操作栏:

enter image description here

我点击搜索并开始输入:

enter image description here

我选择第一个搜索结果“乌鲁克战役”:

enter image description here

应用栏仍显示字段编辑。我必须通过单击关闭按钮来关闭该字段。如何通过代码隐藏字段,因此应用程序栏看起来像认的第一个屏幕截图?

searchView.setonItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent,View view,int position,long id) {
                  
                <close field and show search icon again>
                // my tries,which didn't work correctly
                //searchView.clearFocus();
                //searchView.setIconified(true);
                //searchView.setVisibility(View.GONE);
                //searchItem.setVisible(true);

            }
}

解决方法

正如文档所说:https://developer.android.com/reference/android/widget/SearchView#setIconifiedByDefault(boolean)

 searchView.setQuery("",false);

 if (!searchView.isIconifiedByDefault()) {   
     searchView.setIconifiedByDefault(true);
 } 
    

编辑:不推荐使用setIconified(true)和isIconfied()

也可以尝试在菜单上设置app:showAsAction =“ always”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。