我有一个搜索视图和一个按钮。
按钮有一个onClick侦听器,它成功地聚焦了SearchView,但是键盘只在我实际点击SearchView时显示。
当我点击按钮时,除了聚焦搜索视图外,我还想显示键盘。
以下是onCreate
内部的按钮侦听器代码:
binding.emptyStateSearch.setOnClickListener {
searchView.requestFocus() // this works and makes the cursor active in the searchView
val imm: InputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(searchView, InputMethodManager.SHOW_IMPLICIT) // but this does not show the keyboard
}
我也尝试了imm.toggleSoftInput(0, 0)
,它可以工作,但它被弃用,所以我不想依赖它。
我试过没有SHOW_IMPLICIT
:showSoftInput(searchView, 0)
。不工作。
我试着在调用showSoftInput
之前设置一个计时器,但这也不起作用。
奇怪的是,SearchView.isFocusable
返回true
,但在调用requestFocus
时,isFocused
返回false
,即使我可以清楚地看到它里面的光标。
设法修复它与一个简单的工作区从这个线程:显示软键盘搜索视图在ActionBar
searchView.setIconified(true);
searchView.setIconified(false);