解决:WebView高度自适应,视频全屏后,页面留白问题

2020-05-18  本文已影响0人  请叫我果爸

问题:

因为需求,所以在XML布局中,设置WebView高度为wrap_content(自适应),但是页面加载内容存在视频,视频全屏后,页面存在留白。

解决方案:

我的思路是在页面加载完成的时候,修改webview的高度。
所以我们设置WebViewClient监听,在onPageFinished方法中,通过重新设置LayoutParams去修改webview的高度。

      webViewClient = object : WebViewClient() {
            override fun onPageFinished(webview: WebView?, p1: String?) {
                super.onPageFinished(webview, p1)
                LogUtils.d("Logger", "DefineWebView.onPageFinished")

                //如果webview的高度是自适应,重新设置他的高度,防止视频全屏后,改变webview的高度.
                if (layoutParams.height == -2) {
                    LogUtils.d("Logger", "DefineWebView.onPageFinished width=${width} ,height=${height}")
                    val lp = LinearLayout.LayoutParams(width, height)
                    layoutParams = lp
                }
      }

后续

如果单纯只是视频全屏,没有其他操作,这种应该是满足了。但是我还有字体大小变化,所以还是有问题,最后采用办法还是通过JS,告诉客户端页面高度,然后通过LayoutParams设置。

上一篇 下一篇

猜你喜欢

热点阅读