Gram teraz z RecyclerView
i natknąłem się na następujący problem. Kiedy RecyclerView's LinearLayoutManager
podejmuje decyzję o tym, czy widok wyszedł z ekranu (aby mógł być recyklerem), nie bierze pod uwagę widoku translationY
.RecyclerView nie respektuje tłumaczenia podczas recyklingu wyświetleń
W zasadzie, kiedy przewijam w górę i mam widoki z pozytywem translationY
, LinearLayoutManager
uważa, że widok jest poza ekranem, ale w rzeczywistości jest nadal widoczny (ponieważ jest tłumaczony w dół).
Zauważyłem, że sposób, w jaki LinearLayoutManager
podejmuje tę decyzję - to patrząc na getDecoratedBottom(View)
, więc starałem się przesłonić getDecoratedBottom(View)
, aby również uwzględnić tłumaczenie. Niestety, całkowicie zakłóca to układ - ta metoda jest również używana, gdy układamy nowe elementy, więc nowe elementy otrzymują dodatkowe tłumaczenie (na istniejące).
Czy istnieje łatwy sposób, aby powiedzieć LinearLayoutManager
, aby zobaczyć translation
atrybut, gdy podejmuje decyzję o recyklingu widoku bez ponownego wdrażania LayoutManager
od zera?
Znalazłeś rozwiązanie problemu? –
@ZakharovRoman yeah ... Rozwidlona implementacja LinearLayoutManager i nieco zmodyfikowała jej logikę, aby uwzględnić również tłumaczenie. Ale nic "po wyjęciu z pudełka" nie mogło rozwiązać problemu. –
ok, spróbuję. dzięki –