2010-02-17 18 views
55

Podaję metodę następujące wezwanie do mojego Webview klienta wbudowanego w moim układzie
wv.loadData("<html><body bgcolor=\"Black\"></body></html>","text/html", "utf-8");WebView pokazując biały pasek po prawej stronie

Gdy ten na urządzeniu, to pokazuje biały pionowy pasek po prawej stronie . Naprawiłem białą rzeczy za pomocą webview.setBackgroundColor(Color.BLACK); ale chcę go usunąć całkowicie

Poniżej mój układ xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 
    <WebView android:id="@+id/wv1" 
      android:layout_height="fill_parent" 
      android:layout_width="fill_parent" 
      /> 

</LinearLayout> 

Wszelkie sugestie ??

+0

czy możesz pokazać nam xml układu, którego używasz? – dparnas

Odpowiedz

147

użytkowania następujących ukryć, ale nie usunąć funkcjonalność przewijania. Dopasowanie marginesu układu jest nieprzyjemnym obejściem.

//webview being your WebView object reference. webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

+9

Nota boczna do tego. Nie mam pojęcia dlaczego, ale ustawienie tego w pliku XML, a nie w kodzie Java, nie działa dla mnie. – rushinge

+0

@rushinge Całkowicie zgadzam się, że to nie działa, gdy jest ustawione za pomocą XML. Oto zarejestrowany defekt Androida http://code.google.com/p/android/issues/detail?id=17293&q=scrollbarStyle&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars –

+0

Zazwyczaj wolisz ** WebView. SCROLLBARS_INSIDE_OVERLAY **. W ten sposób pasek przewijania będzie wyświetlany po przewinięciu widoku. Jest to domyślne zachowanie na nowszych platformach, ale nie na starych (przynajmniej nie aż do poziomu interfejsu API 11). – cprcrack

4

To może nie być "najlepsza" odpowiedź, ale zadziałało to dla mnie.

<WebView android:layout_marginRight="-7dip" /> 

Daj mi znać, jeśli jest coś lepszego, ponieważ wydaje mi się to hackish.

+0

Miałem rację, jest hackish. Zobacz powyższe rozwiązanie Chrisa Danielsona. –

+2

Użyłem czegoś podobnego do tego, ale otrzymałem niespodziewane zachowanie na różnych urządzeniach. Nie używaj tego. – Sabo

9

Ustawiłabym margines: 0 i dopełnienie: 0 wewnątrz. Można zrobić coś jak

<body style="margin: 0; padding: 0"> 
1

Moja aplikacja ma selekcyjny nocnego trybu, który zmienił kolor na biały na czarnym tle. Widok centralny to tekst wyświetlający WebView.

W trybie nocnym użyłem dodatkowego pliku css, który wyświetlał biały tekst na czarnym tle, ale użytkownicy skarżyli się na biały pasek przewijania po prawej stronie. Miałem więc ten sam problem, co opisany powyżej. Jednak musiałem programowo włączać i wyłączać tryb nocny w czasie wykonywania, ale nie chciałem ukrywać pasków przewijania.

Prostym rozwiązaniem Kiedyś było:

if (isNightMode()) { 
    webView.setBackgroundColor(Color.BLACK); 
} else { 
    webView.setBackgroundColor(Color.WHITE); 
} 

Ustawianie backgroundColor z WebView dotknięte paski przewijania w miarę potrzeb.

Powiązane problemy