2015-01-07 10 views
9

Mam WebView w mojej aplikacji, która zawiera treść HTML, a rozmiar zawartości HTML jest większy niż rozmiar WebView. Dzięki temu zawartość przewija się w środku, gdy użytkownik przeciągnie na niego palec. Chcę zatrzymać to przewijanie WEWNĘTRZNE z treścią.Jak zatrzymać przewijanie WEWNĘTRZNE WebView w systemie Android?

Herezje co już próbowałem tak daleko:

WebView view = new WebView(context); //context is of Activity 
view.setHorizontalScrollBarEnabled(false); 
view.setVerticalScrollBarEnabled(false); 
view.setScrollContainer(false); 

i CSS jak:

overflow : hidden !important; 

Uprzejmie zaproponować rozwiązania wyjątkiem Wyłączenie Finger Drag (Hack) dla WebView ponieważ zakłócają mój inna funkcja, która jest następująca:

@Override 
public boolean onTouch(View view, MotionEvent motionEvent) { 
    if(motionEvent.getAction() == MotionEvent.ACTION_MOVE) 
    { 
     return true; 
    } 
    } 
+0

Kliknij [tutaj] (http://stackoverflow.com/a/5274400/4419437) mam nadzieję, że to pomoże :) –

+0

@asimmahmoodKhan wspomniałem wszystkie te rozwiązania w moim pytaniu. Najpierw sprawdź. Dzięki :) – Perry

+0

[kliknij tutaj] (http://stackoverflow.com/a/8654192/4419437) myślę, że ten kod pomoże ci.Robić za ostatni komentarz :) –

Odpowiedz

4

Dodaj pojemniku do WebView, która otacza całą zawartość i siada tuż poniżej elementu body, jak tak:

<body id="myBody"> 
    <div class="container"> 
    <!-- All your content goes in this new div.container --> 
    </div> 
</body> 

Następnie dodać CSS na swojej stronie:

body { 
    height: 100%; 
    width: 100%; 
    pointer-events: none; 
} 
div.container { 
    overflow: hidden!important; 
    height: 100%; 
    width: 100%; 
} 

Problem polega na tym, że WebView wydaje się ignorować przewijanie na body pomimo reguł przepełnienia, a ponieważ body rozwija się, aby spełnić jego zawartość, zawsze będzie myślał, że jest więcej do przewijania. To, co się robi, polega na zresetowaniu ciała do rozmiaru WebView, a następnie użyciu kontenera, aby ciało nie rozszerzało się poza WebView z większą ilością treści.

Nadzieję, że pomaga.

+0

Yeah @Josh Burgess, to na pewno działa !!! Ja też w końcu zrobiłem to samo, kiedy nie znalazłem nic w androidzie (JAVA). Po prostu zapomniałem napisać tutaj. Dzięki tony koleś :) :) :) – Perry

+0

Hy, Próbowałem twoje rozwiązanie i rzeczywiście przewijanie zatrzymuje za pomocą następującego polecenia: przepełnienie: ukryte! Ważne; ale problem polega na tym, że mój html jest płynnym tekstem, a ja wykonuję poziomy stronicowanie, aby użytkownik mógł odwracać strony w poziomie. To polecenie przycina plik, tak aby reszta html została przycięta, chciałbym, bym mógł zatrzymać tylko pionowy zwój. – coder

+0

@ koder następnie zamiast tego wykonaj 'overflow-y: hidden'. –

Powiązane problemy