微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

键盘打开且导航栏隐藏时不调用 OnGlobalLayout

如何解决键盘打开且导航栏隐藏时不调用 OnGlobalLayout

我使用以下代码制作了一个全屏活动(带有隐藏导航栏):

window.decorView.systemUIVisibility = 
        View.SYstem_UI_FLAG_LOW_PROFILE or
        View.SYstem_UI_FLAG_FULLSCREEN or
        View.SYstem_UI_FLAG_LAYOUT_FULLSCREEN or
        View.SYstem_UI_FLAG_LAYOUT_STABLE or
        View.SYstem_UI_FLAG_IMMERSIVE_STICKY or
        View.SYstem_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
        View.SYstem_UI_FLAG_HIDE_NAVIGATION

此活动的软输入模式是adjustResizeandroid:windowSoftInputMode="adjustResize"

活动中有一个 WebView,并且存在一个已知问题,即 adjustResize 在全屏模式下不起作用。这是一个 workaround,其主要思想是在键盘打开/关闭时简单地调整活动内容视图的大小。为此,解决方法是通过 OnGlobalLayoutListener#onGlobalLayout 侦听布局更改。 该解决方法可以完美运行,但仅当导航栏未隐藏时才有效。 我查看并注意到 OnGlobalLayoutListener#onGlobalLayout 在导航栏隐藏时不会被调用。这对我来说似乎是一个错误。你能解释一下为什么它不能被调用,有什么解决办法吗?

提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。