我是在Fragment中使用webview的,不知道为什么在它的父级Activity里使用AndroidBug5497Workaround不起作用。在Fragment中添加如下代码起作用了。
class MyWebFragment: Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
//解决全屏时软键盘挡住文本框的问题
activity?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)
mTargetView = view
mTargetViewViewTreeObserver = mTargetView?.viewTreeObserver
mTargetViewViewTreeObserver?.addOnGlobalLayoutListener(onGlobalLayoutListener)
}
override fun onDestroy() {
super.onDestroy()
activity?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING)
if (mTargetViewViewTreeObserver?.isAlive == true) {
mTargetViewViewTreeObserver?.removeOnGlobalLayoutListener(onGlobalLayoutListener)
}
}
private var mTargetView: View? = null
private var mTargetViewViewTreeObserver: ViewTreeObserver? = null
private var onGlo

该文章提供了一个自定义工具类SoftKeyHideInputUtil,用于在Fragment中的WebView遇到全屏时软键盘挡住输入框的问题。通过监听布局变化和设置系统UI标志,实现了键盘弹出时自动调整内容区域,确保内容可见。同时提供了创建和销毁该工具类的方法。
最低0.47元/天 解锁文章
4066

被折叠的 条评论
为什么被折叠?



