我正在努力解决这样一个问题,即在我的Webview中,当用户选择文本字段时,出现的键盘会覆盖下面的文本字段。相反,我需要一种将文本字段移动到键盘正上方的行为,就像标志SOFT_INPUT_ADJUST_PAN所做的那样
根据测试,在Webview上,默认情况下,它会在字段下方显示键盘。但是我的WebView是全屏的。我在活动中调用了这个.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LlayoutParams.FLAG_FULLSCREEN);这似乎让android停止了默认的"平移并扫描"行为。
我试着打电话getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)甚至getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)但这并没有解决问题。
我需要将活动设置为全屏,因为我想隐藏标题栏和状态栏,所以除非有其他方法隐藏状态栏,否则删除它不是一个选项。
你知道如何解决这个问题吗?
Laurent
您需要删除FLAG_FULLSCREEN标志。操作系统的某个地方有一个错误,经过一些挖掘,我发现了以下内容:
- 在网络视图调整周围没有任何额外的滚动视图Pan对我来说从来都不起作用。不幸的是,添加滚动视图也不总是有帮助
- adjustScroll在网络视图所在的活动不存在FLAG_FULLSCREEN时对我有效
因此,总结一下,当涉及到WebView时,最安全的选择是adjustResize而不是全屏活动。
对我来说,这很有效:
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);