2015-02-10 10 views
6

Używam Twowayview w jednym z moich projektów. Które jest rozszerzeniem biblioteki androidów Recyclerview. (Funkcje takie jak pionowe, poziome z przesunięciem w pionie, spannable grid i widoki listy). Czasami elementy w widoku siatki znikają podczas przewijania (tj. Automatycznie dodaje dopełnienie za każdym razem, gdy przewija i przewija wszystkie elementy do strony, którą przewijaliśmy). To było przypadkowe zachowanie, którego nie doświadczasz za każdym razem.Twowayview automatycznie dodaje wyściółkę podczas przewijania

Obejrzyj ten film, Recyclerview scroll issue

Proszę znaleźć dodatkowe wzmianka o tej kwestii w ten link poniżej,

Padding problem #140

To auto wyściółka problem głównie występuje, gdy mamy dodać lub usunąć kartę z nowych elementów .

Proszę znaleźć widżet Użyłem poniżej z atrybutami

<org.lucasr.twowayview.TwoWayView 
android:id="@+id/spannable_grid" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:animationCache="false" 
android:scrollbarAlwaysDrawHorizontalTrack="false" 
android:scrollbarSize="0px" 
android:scrollbars="none" 
android:scrollingCache="false" 
app:layoutManager="SpannableGridLayoutManager" 
app:numColumn="6" 
app:numRow="6" /> 

znalazłem kilka rozwiązań takich jak wyjąć wyściółkę z Twowayview, CliptoPadding itp ale żaden z nich pracuje dla mnie. Używam Recyclerview w wersji 21.0.0. Ktoś, kto doświadcza tego problemu? Jak rozwiązać ten problem?

+1

I Znaleziono rozwiązanie dla tego problemu, Ref _; http://stackoverflow.com/questions/29137920/twoway-view-add-empty-space-automatically- solve – IshRoid

Odpowiedz

0

Czy próbowałeś dodać niestandardowego onScrollListener, aby skorygować, gdy jego State(). GetTargetScrollPosition() jest prawdopodobnie spoza spodziewanego zakresu?

+0

To nie może być odpowiedź. Dodaj komentarz do pytania. – Ramsharan

+1

Nie ma wystarczającej liczby przedstawicieli, aby to zrobić. –

+0

Och, człowieku, nie patrzyłem tam. – Ramsharan

5

mam przeksięgowanie odpowiedź przez Ish

Przede wszystkim zachować należy użyć kodu TwoWay-View biblioteki nie słoiku.

  1. Otwórz folder układ biblioteki.
  2. Przeglądaj pakiet org.lucasr.twowayview.widget
  3. Otwarte BaseLayoutManager klasa
  4. skokiem linii nr. 362
  5. Będziesz znaleźć kod jako

if (anchorItemPosition> 0 & & (refreshingLanes ||! RestoringLanes)) {

zastąpić tę linię za pomocą tej jednej

if (anchorItemPosition> 0 & & refreshingLanes & &! RestoringLanes) { Powyższa zmiana w pracy klasy BaseLayoutManager dla ja jako rozwiązanie wyżej wymienionych problemów.

Mam nadzieję, że pomoże to wszystkim użytkownikom TwoWay-View.

+0

Ta zmiana jest scalana w rozwidleniu oryginalnego projektu. Sprawdź widelec [mrolcsi] (https://github.com/mrolcsi/twoway-view) lub jego [commit] (https: // github.com/mrolcsi/twoway-view/commit/8cc9dfa1e3beed37cf9f90cde802b4d2e3ad9eb2). Używając tego rozwidlenia zamiast oryginału, możesz skompilować i pobrać słoik z poprawką zamiast zarządzać całym kodem źródłowym w swoim projekcie. – welshk91

Powiązane problemy