仍然可见的软键盘

时间:2016-06-07 15:06:08

标签: android vimeo soft-keyboard

我有一个奇怪的情况仍然是可见的软键盘。 简单的流程。 没有任何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);

但它破坏了沉浸式的活动模式 - 导航栏显示并消失。如何永久阻止键盘?有没有人有类似的问题?

1 个答案:

答案 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)隐藏键盘时调用此方法;