对活动有网络视图,无论输入内容如何,我都需要键盘始终显示在页面上(某些页面可能无法输入)。
当用户按下按钮或发生任何单击事件时,也不应隐藏键盘。
我尝试了以下选项(尝试了所有标志类型),但找不到一个。
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.RESULT_SHOWN);
答案 0 :(得分:1)
您可以在android:windowSoftInputMode="stateAlwaysVisible"
中添加manifest.xml
<activity android:name=".YourActivity"
android:windowSoftInputMode="stateAlwaysVisible" />
答案 1 :(得分:0)
以下答案仅在我们具有单个活动和Web视图时才有效。未经大型应用测试。
答案来自于自定义键盘InputMethodService。
hideWindow()是一种重写方法,我们可以限制键盘的隐藏力
showKeyboardAlways和activity是静态变量。键盘限制仅适用于当前应用程序,而不适用于全部。
@Override
public void hideWindow() {
if (!showKeyboardAlways || SoftKeyboard.activity == null) {
super.hideWindow();
}
}
这将防止活动后按事件,我们需要实现以下给出的逻辑
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && SoftKeyboard.activity != null) {
SoftKeyboard.activity.onBackPressed();
}
return super.onKeyDown(keyCode, event);
}