在按钮的 onClick 侦听器中请求将焦点放在 SearchView 上后,如何显示软键盘?



我有一个搜索视图和一个按钮。

按钮有一个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);

相关内容

  • 没有找到相关文章

最新更新