/ / Ako urobiť webviews tak veľký ako jeho obsah? - android, webview, horizontalscrollview

Ako vytvoriť webové zobrazenia ako veľké ako jeho obsah? android, webview, horizontalscrollview

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ď č. 1

Problé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.