我有一个奇怪的情况仍然是可见的软键盘。 简单的流程。 没有任何edittexts的活动,隐藏软键盘。 从清单:
<activity
android:name=".activities.MainActivity"
android:theme="@style/MainActivity"
android:windowSoftInputMode="stateAlwaysHidden" />
...并且还从代码中检查
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
在这个活动中,我有一个包含webview的片段。我在这个webview中添加了touchlistener,它发送了#space;#关键。
protected View.OnTouchListener onTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_SPACE);
}
return false;
}
};
它处理开始/暂停效果,我在那里拥有该webview的vimeo视频内容。以前我尝试通过javascript处理程序与vimeo视频播放器进行通信,但它不起作用。发送关键事件是一个非常简单的解决方案,并且除了一个以外的所有设在dell t01c上调用touchlistener时,会出现软件键盘。我可以用简单的
隐藏它InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0);
但它破坏了沉浸式的活动模式 - 导航栏显示并消失。如何永久阻止键盘?有没有人有类似的问题?
答案 0 :(得分:-1)
试试这个
将此静态方法放在Utils类中
public static void hideKeyboard(Activity activity) {
try {
InputMethodManager input = (InputMethodManager) activity
.getSystemService(Activity.INPUT_METHOD_SERVICE);
input.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
} catch (Exception e) {
e.printStackTrace();
}
}
通过Utils.hideKeyboard(YOURACTIVITY.this)隐藏键盘时调用此方法;