将方向从横向更改为纵向后,Webview内容的宽度与父级不匹配

时间:2018-11-27 10:36:45

标签: android android-layout webview

我的应用程序中的一个片段正在Webview中显示我网站上的文章。为了改变方向,我在清单中的活动中放置了android:configChanges="orientation|screenSize"。 除了该片段中显示的webview之外,其他所有东西都正常运行。当我将屏幕方向从横向更改为纵向时,Webview看起来像 this。只有广告与宽度check it here相匹配。

有趣的是,只有当我将文章加载为横向,然后变为纵向时,才会发生这种情况。 当我以纵向加载文章时,将其更改为横向,第二次将其更改为纵向,则Webview内容将其宽度与屏幕正确匹配。请检查herehere

我片段中的webview配置:

contentWebView = view.findViewById(R.id.contentWebView);
    contentWebView.setWebChromeClient(new FullScreenInWebviewClient(contentRelativeLayout,
            contentWebView, mainActivity.getSupportActionBar()));
    contentWebView.setWebViewClient(new WebViewClient(){

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url){
            Uri uri = Uri.parse(url);

            if(url != null && (url.startsWith("http://") || url.startsWith("https://"))){

                view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, uri));
                return true;

            } else{
                return false;
            }

        }


    });

    contentWebView.setLayoutParams(new RelativeLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT));

    WebSettings webSettings = contentWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING);
    webSettings.setLoadsImagesAutomatically(true);
    webSettings.setLoadWithOverviewMode(true);
    webSettings.setUseWideViewPort(true);
    webSettings.setDomStorageEnabled(true);
    webSettings.setAllowContentAccess(true);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);    

我的相对布局文件:

<WebView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/contentWebView"
    android:clickable="true"
    android:focusable="true"/>

<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/contentProgressBar"
    android:background="@xml/progress"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    />

如何解决此问题?广告是否引起此故障?感谢您的帮助!

编辑: 此问题是由广告引起的。向他们显示的JavaScript代码做到了这一点。 我从Webview中删除了这些广告,并在我的应用中使用Google adMob实施了广告。现在,改变方向非常完美,没有任何问题。

0 个答案:

没有答案