我的应用程序中的一个片段正在Webview中显示我网站上的文章。为了改变方向,我在清单中的活动中放置了android:configChanges="orientation|screenSize"
。
除了该片段中显示的webview之外,其他所有东西都正常运行。当我将屏幕方向从横向更改为纵向时,Webview看起来像
this。只有广告与宽度check it here相匹配。
有趣的是,只有当我将文章加载为横向,然后变为纵向时,才会发生这种情况。 当我以纵向加载文章时,将其更改为横向,第二次将其更改为纵向,则Webview内容将其宽度与屏幕正确匹配。请检查here和here。
我片段中的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实施了广告。现在,改变方向非常完美,没有任何问题。