1

所以我需要保持应用程序的沉浸式模式。该应用程序在沉浸式模式下具有全屏 Web 视图,但问题是 Web 视图内容有一个文本框。当用户触摸文本框时,它将触发软键盘,这将禁用沉浸模式。我解决了文本框失去焦点时的问题,它会触发一个 javascript 界面再次重新激活沉浸式模式。但问题是显示软键盘时的隐藏/返回按钮。

这是图像

我试过了onKeyDowndispatchKeyEventonBackPressed调试时都没有触发。

4

1 回答 1

0

为了获得软键盘的可见性,您必须这样做:

contentView.getViewTreeObserver().addOnGlobalLayoutListener(new 
ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {

Rect r = new Rect();
contentView.getWindowVisibleDisplayFrame(r);
int screenHeight = contentView.getRootView().getHeight();

int keypadHeight = screenHeight - r.bottom;
if (keypadHeight > screenHeight * 0.15) {
    // keyboard is opened
}
else {
    // keyboard is closed
    }
}
});

编码快乐!!

于 2017-11-08T06:07:11.380 回答