java - 单击 Activity 的其他位置时如何使 SearchView 失去焦点并崩溃

标签 java android searchview

在我的应用程序中,我正在制作一个 search interface其中 SearchView 分别在失去焦点和获得焦点时折叠和展开。然而,失去焦点的事情只发生在两种情况下:

  1. 当按下后退按钮时。

  2. 当按下 SearchView 旁边的主页图标时。

如果用户不仅点击这两个东西,而且点击屏幕上的任何其他地方(例如,任何按钮或屏幕上没有 View 的任何空白部分),我希望它失去焦点(并因此崩溃)。

最佳答案

好吧,我找到了以下解决方案。我在不是 searchview 实例的每个 View 上使用 setOnTouchListener 来折叠 searchview。它对我来说很完美。以下是代码。

public void setupUI(View view) {

    if(!(view instanceof SearchView)) {

        view.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                searchMenuItem.collapseActionView();
                return false;
            }

        });
    }

    //If a layout container, iterate over children and seed recursion.
    if (view instanceof ViewGroup) {

        for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {

            View innerView = ((ViewGroup) view).getChildAt(i);

            setupUI(innerView);
        }
    }
}

This是我提到的答案。

关于java - 单击 Activity 的其他位置时如何使 SearchView 失去焦点并崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17590874/

相关文章:

android - Zipaligned 应用程序出错

java - Android html POST 不工作,没有给出错误

android - 如何从 AlertDialog 中的 EditText 中检索值?

android - 在 ListView 中过滤搜索 View 的结果

android - Kotlin 导航 fragment 中的 searchview.setonquerytextlistener() 类型不匹配

java - 从 Java 应用程序使用 Groovy 库

java - 如何在文本区域中显示数据库中的多行

java - Netflix Karyon 不使用 Governator 创建资源类

Java队列固定大小的数据结构

android - 在 Android 的 Action Bar 中实现 SearchView