所以我需要保持应用程序的沉浸式模式。 该应用程序具有沉浸式模式的全屏webview,但问题是webview内容有一个文本框。 当用户触摸文本框时,它将触发软键盘,这将禁用沉浸式模式。 当文本框失去焦点时,我解决了问题,它将触发javascript接口再次重新激活沉浸式模式。但问题是显示软键盘时的隐藏/返回按钮。
我尝试了onKeyDown
,dispatchKeyEvent
和onBackPressed
,但在调试时都没有触发。
答案 0 :(得分: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
}
}
});
快乐的编码!!