2010-12-30 10 views
5

Mam przeglądarkę internetową w przewijanym widoku, gdy ładuje się działanie, zmusza mój przewijany widok do dołu (gdzie jest widok na WWW), gdy przeglądarka zakończy "loadData". Jak to powstrzymać? Próbowałem to, ale wyskakuje ekran w górę iw dół, co nie chcę:webview zmusza mój przewijanie do dołu

ScrollView scroll = (ScrollView)findViewById(R.id.detailsScroll); 
scroll.post(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     ScrollView scroll = (ScrollView)findViewById(R.id.detailsScroll); 
     scroll.fullScroll(ScrollView.FOCUS_UP); 
    } 
}); 
+2

Nie należy umieścić webview w Scrollview. Przewijane widoki w przewijanych widokach nie działają. – Falmarri

+0

ok, więc jak mam to zrobić, jeśli zawartość działania jest większa niż ekran? – steve

+0

... a czy to nie jest to, co robi admob? Wygląda na to, że widok sieciowy zyskuje ostrość po załadowaniu zawartości, co powoduje przeskok skoku. – steve

Odpowiedz

5

Tworzenie niestandardowego Scrollview z tą metodą:

@Override 
public void requestChildFocus(View child, View focused) { 
    if (child instanceof WebView) return; 
} 
10

Odpowiedź fhucho jest OK, aby zatrzymać przewijanie strony internetowej od przewijania do dołu. Ale stracisz wszystkie dostępności z trackballem, itd. Więc znalazłem lepszy:

public class MyScrollView extends ScrollView { 

    @Override 
    public void requestChildFocus(View child, View focused) { 
     if (focused instanceof WebView) 
      return; 
    super.requestChildFocus(child, focused); 
    } 
} 

Nadzieję, że to pomaga!

+0

Niestety uniemożliwia to wyświetlenie klawiatury po kliknięciu pól wejściowych w widoku internetowym. – spatialist

2

przypadku problemów ostrości związane znalazłem to działało lepiej, dodając je do swojej WebView w XML:

android:focusable="false" 
    android:focusableInTouchMode="false" 

Chociaż dla poprosił rzeczywisty pytanie, wystarczy dodać inny widok, który pobiera ostrość domyślnie, zamiast WebView, powinien był rozwiązać ten problem. Myślę, że inni tacy jak ja mogą znaleźć to, próbując poradzić sobie z innymi ogólnymi problemami z WebView wewnątrz ScrollView skupiając się na tym. Dodanie powyższego do XML nie powstrzyma działania hiperłączy w WebView.

0

dodać do głównego układu

android: descendantFocusability = "blocksDescendants"

Powiązane problemy