X5WebView(com.tencent.smtt.sdk.W

2020-07-06  本文已影响0人  _compass

今天在某一项目里,发现一页面里内嵌X5WebView,会有奇怪的高频率闪烁问题。经过跟踪发现,是因为控件里设置了wrap_content。
经过几次修改,发现以下做法可改掉这个问题:

1. 在xml里预先给X5WebView设置一个高度,例:

       android:layout_width="match_parent"
       android:layout_height="150dp"

2.当页面加载完毕后,重新设置高度:

       webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView webView, String s) {
                webView.loadUrl(s);
                return true;
            }

            @Override
            public void onPageFinished(WebView webView, String s) {
                super.onPageFinished(webView, s);
                int height = webView.getContentHeight();
                if (height > 0) {
                    ViewGroup.LayoutParams params = webView.getLayoutParams();
                    params.height = DensityUtil.dp2px(Activity.this, height);;
                    webView.setLayoutParams(params);
                }
            }
      });

这样就不会闪烁了。

上一篇下一篇

猜你喜欢

热点阅读