【问题标题】:How to close a SearchView programmatically on back pressed? in Fragment如何在后按时以编程方式关闭 SearchView?在片段中
【发布时间】:2020-11-22 06:30:41
【问题描述】:

我目前在我的应用的操作栏中有一个 SearchView。当我单击搜索图标时,SearchView 会展开,键盘会按预期弹出。单击 SearchView 框中的“X”会按预期关闭 SearchView。但是,当 SearchView 被激活并按下“返回”按钮时,我的应用程序将退出。这是正确的行为,但我现在要做的是在我的片段中捕获后退按钮按下,并在 SearchView 可见时让它关闭 SearchView(不是我的应用程序)。有没有办法在按下后退按钮时以编程方式调用 SearchView OnCloseListener()? 我现在在片段中的我的 onCreate() 中拥有什么:

        activity?.onBackPressedDispatcher?.addCallback(this, object : OnBackPressedCallback(true) {
            override fun handleOnBackPressed() {
                if (!searchView.isIconified) {

                    hideKeyboard()
                   searchView.onActionViewCollapsed()
                    false


                }

            }
        })

这工作正常,但我有 2 个问题,我必须双击返回按钮,第二个问题即使我返回我的回收站视图列表,我也永远无法存在该应用程序

【问题讨论】:

    标签: android android-studio kotlin searchview


    【解决方案1】:

    经过几天的搜索,这对我有用: 活动?.onBackPressedDispatcher?.addCallback(this, object : OnBackPressedCallback(true) { 覆盖有趣的handleOnBackPressed() { 如果(!searchView.isIconified){ 工具栏.collapseActionView() } 别的 { this.isEnabled = false 活动?.onBackPressed() } } })

    【讨论】:

    • 应该是searchView.onActionViewCollapsed()而不是toolbar.collapseActionView()
    猜你喜欢
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多