SoftKeyboardStateListener不适用于Lollipop设备

时间:2016-04-08 12:11:10

标签: android android-softkeyboard

这是我用来监听软键盘可见性变化的方式:

    final SoftKeyboardStateWatcher softKeyboardStateWatcher
            = new SoftKeyboardStateWatcher(mainLayout);
    softKeyboardStateWatcher.addSoftKeyboardStateListener(new SoftKeyboardStateWatcher.SoftKeyboardStateListener() {
        @Override
        public void onSoftKeyboardOpened(int keyboardHeightInPx) {
            bottomToolbar.setVisibility(View.GONE);
        }

        @Override
        public void onSoftKeyboardClosed() {
            bottomToolbar.setVisibility(View.VISIBLE);
        }
    });

我的应用程序是针对SDK> = 16制作的,适用于所有前Lollipop设备,我在HTC One M7上使用5.0.2 Android进行了测试,结果还可以。但是,当我尝试使用Nexus 4,API 22和Nexus 5,API 23进行测试时,onSoftKeyboardOpenedonSoftKeyboardClosed永远不会被调用。

我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个,

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

我希望这可以帮助你.. :)