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

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

作者: 请叫我果爸 | 来源:发表于2020-05-18 12:00 被阅读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设置。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/rpcuohtx.html