取消SearchView会导致软键盘出现

即使我的SearchView不是焦点(即用户已经按下了“搜索”按钮提交他们的查询),当我按下我的Android SearchView上的取消(X)按钮时,软键盘会恢复到视图。

我的想法是,如果用户还没有在屏幕上的键盘,那么他们只是想清除过滤器/搜索框。 如果他们想清除过滤器并输入不同的东西,他们可以再次点击它。

但是,如果他们在框中键入并出错,我会希望键盘保持在视图中(因为搜索视图已经有焦点)。

所以简而言之,我想要:

  • 如果用户在搜索视图中键入并点击取消/清除,则键盘保持焦点。
  • 如果用户当前没有在搜索视图中输入内容(即键盘从视图中消失),则点击清除按钮应该清除该查询,而不要将键盘放回到视图中。
  • 我知道当按下清除/关闭按钮时,我可以使用setOnCloseListener()事件来挂钩,但我不知道如何停止显示第2点中提到的软键盘。

    编辑:

    也许有一种方法可以使搜索视图“失去焦点”? 我如何实现这一结果? 谢谢。


    通过执行以下操作可能会失去焦点:

    searchView.clearFocus();
    

    您还可以强制使用inputManager隐藏任何您想要的inputManager

    例如:

    InputMethodManager inputManager = (InputMethodManager) this
                .getSystemService(Context.INPUT_METHOD_SERVICE);
    
        //check if no view has focus:
        View v=this.getCurrentFocus();
        if(v==null)
            return;
    
        inputManager.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    
    链接地址: http://www.djcxy.com/p/92961.html

    上一篇: Cancel on SearchView causing the soft keyboard to appear

    下一篇: Is there a better way to restore SearchView state?