折叠搜索小部件Android

3
我已经按照Android开发者网站上的官方指南,在操作栏中实现了搜索小部件。这个小部件在开始时是处于折叠状态的。当用户点击搜索图标后,它就会展开,键盘弹出,用户可以进行搜索。一旦用户按下回车键,一个新的活动将被启动,用来处理并显示搜索结果。当用户按返回键返回到之前的活动(即搜索之前),我希望搜索视图能够自动折叠,因为用户已经完成了搜索。我该如何做呢?目前,用户需要按两次返回键,一次是关闭键盘,一次是折叠搜索小部件。我已经尝试过。
searchManager.setOnDismissListener(new OnDismissListener() {
        public void onDismiss() {
            searchView.setIconified(true);
        }
    });

这会使键盘收起来,但用户仍然需要再按一次返回按钮才能真正折叠视图并将其移回到操作栏的位置。

2个回答

5

我知道这是一个老问题,但我刚刚找到它来寻找答案。我已经尝试过上面的方法,但实际上你需要折叠MenuItem而不是SearchView。以下是代码片段:

 // I do this in onCreateOptionsMenu
 mSearchMenuItem = menu.findItem(R.id.menu_item_search);

 // Call this when you want to collapse it
 mSearchMenuItem.collapseActionView();

希望这能帮助到某些人。

这绝对是最简单、最优雅的方法。 - Eran Goldin

0

你可以使用 @Ryan 的答案,但是如果你需要支持旧版本,你可以使用 android.support.v4.view.MenuItemCompat 来实现:

MenuItemCompat.collapseActionView(searchMenuItem);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接