所以我需要保持一个应用程序的沉浸模式。该应用程序在沉浸式模式下有全屏网页视图,但问题是webview内容有一个文本框。当用户触摸文本框时,它将触发软键盘,这将禁用沉浸模式。当textbox失去焦点时,我解决了这个问题,它将触发javascriptinterface重新激活沉浸模式。但问题是软键盘显示时的隐藏/后退按钮。
我尝试过onKeyDown、dispatchKeyEvent和onBackPressed,但它们在调试时都没有触发。
发布于 2017-11-08 06:07:11
要获得软键盘的可见性,您必须这样做:
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
}
}
});编码愉快!!
https://stackoverflow.com/questions/47172338
复制相似问题