我有一种情况,我打开SearchActivity
,我希望光标在SearchView
(保持焦点),而不是首先显示键盘。当和仅当用户按下SearchView
时我想显示键盘(光标应该是完整的)
答案 0 :(得分:2)
在activity.xml
文件的主要布局
<LinearLayout
...
android:focusableInTouchMode="true"
...
>
答案 1 :(得分:0)
在Manifest
SearchActivity
添加此行
<activity name=".SearchActivity"
android:windowSoftInputMode="stateHidden" />
或在活动中onCreate()
添加
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
答案 2 :(得分:0)
在SearchActivity
onCreate
中尝试此操作
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
答案 3 :(得分:0)
将此添加到您的onCreate以隐藏kayboard
public void hideSoftKeyboard() {
if(getCurrentFocus()!=null) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
}
答案 4 :(得分:0)
您使用以下代码显示键盘..
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(searchView, InputMethodManager.SHOW_IMPLICIT);
并关闭键盘使用此...
imm.hideSoftInputFromWindow(searchView.getWindowToken(),0);
答案 5 :(得分:0)
在SearchView获得焦点之后,您必须隐藏软键盘:
search.postDelayed({
val imm = activity?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view?.windowToken, 0)
}, 100)