android中的activity布局内含有webview,弹出软键盘如何自动适应屏幕,自动调整

解决方法一:

在所在的Activity中加入

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE|WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

解决方法二:

1.调整AndroidManifest.xml

找到对应的Activity,加入以下属性

android:windowSoftInputMode="adjustResize"

若此时Activity还有全屏属性android:theme="@android:style/Theme.NoTitleBar.Fullscreen",则删除全屏属性。

原因:软键盘弹出时,要对主窗口布局重新进行布局,并调用onSizeChanged方法,当设置为全屏模式,google官方有说明,会忽略输入框调整。

2.布局xml调整

WebView控件所在的布局,WebView祖先节点不能有ScrollView。另外,根节点不能固定高度。还有,当根节点是FrameLayout时,WebView本身、WebView父节点不能固定高度

以上的方式一定要注意,如果在webview中设置div(标题栏),设置了css属性(html页面滑动时标题栏不动)。那么以上的方式都不会生效。

总结:

1.webview不能固定高度。

2.千万不能设置全屏

3.webview中的设置不能加上面的属性


你可能感兴趣的:(Android)