Nemohol som to nájsť na webe. Mám veľa webviews v HorizontalScrollView
, Chcem, aby sa všetky zmestili na jej obsah (potom by prípadne mali inú šírku). Viac ich nafúkam webviews
ako toto:
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);
Držiteľ stránky 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>
a potom „rozloženie webového zobrazenia“:
<?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>
odpovede:
6 pre odpoveď č. 1Problém s wrap_content
a WebViews je to vykreslenie webovej stránkyje asynchrónny z rozloženia v hierarchii pohľadu. Keď Android zmeria veľkosť webových pohľadov, aby určil, kam ich umiestniť v LinearLayout, stránky sa nemuseli vykresliť, a preto ich šírka je 0. Do každého webového zobrazenia musíte pridať PictureListener a určiť, kedy všetky onNewPicture(WebView, Picture)
boli vyvolané spätné volania. Potom môžete zavolať requestLayout()
na vašom LinearLayout naplánovať prechod rozloženia.