2014-05-05 8 views
8

pracuję na Scrollview które zawierają webview, to działa idealnie na 2,3, 4,1, ale gdy próbuję go na emulatorze 4.4, to pokazaćWidok zbyt duża, aby zmieścić się rysunek cache na Webview wewnątrz Scrollview

View too large to fit into drawing cache, needs 5744640 bytes, only 3932160 available 

Widok internetowy jest pusty.

I to jest układ

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:overScrollMode="never" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:padding="5dp" > 

      <TextView 
       android:id="@+id/newsTitle" 
       android:textSize="18sp" 
       android:textStyle="bold" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/last_update" /> 

      <WebView 
       android:id="@+id/newsContent" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:text="@string/last_update" /> 

      <TextView 
       android:id="@+id/newsDate" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/last_update" /> 
     </LinearLayout> 
    </ScrollView> 

</LinearLayout> 

Próbowałem użyć mywebView.setDrawingCacheEnabled(false); ale po prostu wrócić tą samą ostrzeżenie.

Ponadto, problem pojawia się, gdy strona ma ponadekranowy rozmiar, ale kiedy ją wyświetlam, to stwierdzam, że układ strony jest nieco inny, na 2.3, 4.1, może po prostu rozpocząć nową linię, jeśli słowo przekracza stronę, jednak w 4.4 nie, więc część słowa jest poza ekranem.

Jak to naprawić? Dzięki

+0

końcu zrezygnować, ponieważ jest wadliwy w Android, po prostu zrobić biały moja tło, a tło WebView białe, wszystko idealne następnie – user782104

+0

Spróbuj largeHeap = „true” w tagu w oczywisty . Pozwala aplikacji na użycie nieco większego sterty niż zwykle (aby zwiększyć rozmiar pamięci podręcznej). To może ci pomóc. Po prostu daj mi znać. – Sripathi

+0

Dzięki za pomoc, wciąż ten sam błąd – user782104

Odpowiedz

4

moja propozycja jest podać wysokość układu do WebView tak, że przyzwyczajenie przekraczać Your określonej wysokości

<LinearLayout 
      android:id="@+id/webview1" 
      android:layout_width="fill_parent" 
      android:layout_height="150dip" > 

      <WebView 
       android:id="@+id/sampletxt" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" /> 
     </LinearLayout> 

W swojej działalności tylko zawierać poniższe linie

SampleTxt.getSettings().setLoadWithOverviewMode(true); 
       SampleTxt.getSettings().setJavaScriptEnabled(true); 
    SampleTxt.loadData("Your Text To show the Webview", 
         "text/html; charset=UTF-8", null); 

będzie działać prawidłowo. wątpliwości daj mi znać

2

Proponuję użyć własnego klienta WebView. W Androidzie możemy używać WebViewClient lub WebChromeClient. Dzięki temu uzyskasz lepszy rezultat, niż chcesz. Po prostu spróbuj i sprawdź.

+0

Czy to rozwiązało czyjeś problemy? –

0

Dla WebViews w systemie Android powinieneś zacząć od założenia, że ​​rzeczy są błędne. Nie powinny, ale jak odkryłeś, jeśli sprawisz, że tło będzie płaskie, "rozwiąże" problem.

Mimo to warto pamiętać, że podczas kodowania telefonów z systemem Android masz do czynienia z szeroką gamą urządzeń mobilnych o bardzo różnych parametrach przetwarzania i pamięci, więc zawsze upewnij się, że na test na prawdziwym urządzeniu.

Jeśli nie masz co najmniej 4 lub 5 różnych fizycznych urządzeń z Androidem, które możesz przetestować, rozejrzyj się za usługami umożliwiającymi zdalne testowanie ich urządzeń. Nigdy nie wierzcie w to, ponieważ przetestowaliście coś w emulatorze, zachowuje się tak samo na prawdziwym urządzeniu.

Powiązane problemy