我在网上找不到这个。
我在HorizontalScrollView
中有很多网页视图,我希望它们都符合其内容(然后可能有不同的宽度)。
更多,我像这样夸大那些webviews
:
LinearLayout layout = (LinearLayout)getLayoutInflater().inflate(R.layout.webview_holder, null);
webView = (WebView) layout.findViewById(R.id.webView);
webView.loadData(data, "text/html; charset=UTF-8", "UTF-8");
webView.getSettings().setUseWideViewPort(true);
webView.setScrollbarFadingEnabled(true);
pageHolder.addView(layout);
“页面持有者”layout
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<HorizontalScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/page_holder"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
然后是“webview布局”:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<WebView
android:id="@+id/webView"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</LinearLayout>
答案 0 :(得分:6)
wrap_content
和WebViews的问题在于,网页的呈现与视图层次结构中的布局是异步的。当Android测量webviews的大小以确定将它们放置在LinearLayout中的位置时,页面可能尚未呈现,因此宽度为0.您需要向每个WebView添加PictureListener并确定何时所有onNewPicture(WebView, Picture)
已经调用了回调。然后,您可以在LinearLayout上调用requestLayout()
来安排布局传递。