bgo*_*son 6 android android-keypad android-softkeyboard android-input-method
我有一个带有单个EditText的片段,需要软键盘不断打开.旋转屏幕时键盘会隐藏.我在OnActivityCreated中调用showSoftInput,它在旋转后执行,但它不显示键盘.
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edit, 0);
Run Code Online (Sandbox Code Playgroud)
注意:我不想使用toggleSoftInput.我试过了,但在某些情况下最终会关闭键盘.并且无法查询android以确定键盘是否已打开.
似乎showSoftInput与Fragments非常错误.
首先尝试@ TronicZomB的解决方案.它适用于具有单个片段的活动.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
Run Code Online (Sandbox Code Playgroud)
但是,对于具有嵌套FragmentTransactions的Activity,您将被强制使用带有SHOW_FORCED和HIDE_NOT_ALWAYS参数的toggleSoftInput.HIDE_NOT_ALWAYS可防止切换命令在方向更改后关闭已打开的键盘.
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_NOT_ALWAYS);
Run Code Online (Sandbox Code Playgroud)
要稍后隐藏键盘,您可以使用:
imm.hideSoftInputFromWindow(activity.findViewById(android.R.id.content).getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)