2016-03-17 40 views
7

Gdy umieszczam element z załadowaną treścią asynchronicznie z rozszerzalną wysokością, taką jak WebView lub SimpleDraweeView Fresco, widok czasami przewija się do tego elementu (jeśli jest na przykład częściowo widoczny na ekranie , przewija się do niego po załadowaniu elementu). Czy ktoś napotkał ten problem?Funkcja RecyclerView automatycznie przewija do pozycji WebView/Fresco SimpleDraweeView

+1

jestem przeżywa dokładnie tej rzeczy, to naprawdę denerwujące, mam reklam (co widać w WebView) i zmusza RecyclerView do przewijania, aby pokazać reklamę, Czy można znaleźć jakieś rozwiązanie dla tego? – Shehabix

+0

@Shehabix Nie znalazłem rozwiązania dla tego. Upuściłem ideę WebView, a reklamy są po prostu obrazem, wyświetlanym wewnątrz SimpleDraweeView. Ale znam dokładną szerokość i wysokość reklamy z góry, więc gdy ustawię współczynnik proporcji przed załadowaniem obrazu, problem nie istnieje. Zwróciłem się z tą kwestią do Google, ale nie zdawali sobie z tego sprawy. – winiarro

+0

Znalazłem, że ten problem dotyczy tylko niektórych wersji Support Lib. na przykład 23.4.0 nie ma wpływu na 23.3 i 24.0.0 – Shehabix

Odpowiedz

11

Umieść android:descendantFocusability="beforeDescendants" w swoim układzie XML. Zapobiegnie to przewijaniu do zawartości ładowanej asynchronicznie.

<android.support.v7.widget.RecyclerView 
      android:id="@+id/my_list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:descendantFocusability="beforeDescendants" /> 
+1

Wiem, że nie powinniśmy dodawać komentarzy tylko po to, by podziękować, ale muszę w tym przypadku. Dziękuję Ci! –