当用户点击SearchView并打开键盘时,如何隐藏FAB?

4
当我点击SearchView时,如何隐藏FAB,这样当键盘弹出时,FAB就会显示出来。
    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_margin="18dp"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_marginEnd="8dp"
        android:scaleType="center"
        android:layout_marginRight="8dp"
        android:src="@drawable/ic_add_operator"
        app:backgroundTint="@android:color/transparent"
        app:layout_constraintEnd_toEndOf="parent"
         />

请查看以下内容:https://dev59.com/cm445IYBdhLWcg3wq8Lp - Gaurav Mall
可能是如何在Android设备上检测软键盘是否可见?的重复问题。 - Kirill Matrosov
1个回答

2

我也在寻找同样的解决方案,发现了下面这个可行的解决方案,对于我的SearchView来说非常有效。请查看以下代码(使用Kotlin语言实现):

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.menu_main, menu)
        val search: SearchView =
            menu!!.findItem(R.id.action_search_main).actionView as SearchView
        search.apply {
            imeOptions = EditorInfo.IME_ACTION_DONE
            isSubmitButtonEnabled = true
            setOnQueryTextListener(object : SearchView.OnQueryTextListener {
                override fun onQueryTextSubmit(p0: String?): Boolean {
                    return false
                }

                override fun onQueryTextChange(p0: String?): Boolean {
                    // My Function
                    return false
                }
            })
        }
        val menuItemSearch = menu.findItem(R.id.action_search_main)
        menuItemSearch.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
            override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
                Log.wtf("FAB", "HIDE")
                fab.hide()
                return true
            }

            override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
                Log.wtf("FAB", "SHOW")
                fab.show()
                return true
            }
        })

        return super.onCreateOptionsMenu(menu)
    }

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