Próbuję dodać Padding / Margin Bottom w ostatnim wierszu i Padding / Margin Top w pierwszym wierszu. Nie mogę tego zrobić w pozycji xml, ponieważ wpłynęłoby to na wszystkie moje Childs.
Mam nagłówki i elementy podrzędne w moim adapterze RecyclerView, więc nie mogę używać
android:padding="4dp"
android:clipToPadding="false"
Muszę używać go indywidualnie w ostatnim pierwszym wierszu każdego nagłówka
android
android-recyclerview
padding
Czerwony orzeł
źródło
źródło
Odpowiedzi:
Używam tego w Kotlinie
źródło
Ten problem jest jeszcze łatwiejszy do rozwiązania. Możesz zastosować niezbędne dopełnienie do
RecylerView
samego siebie i ustawićclipToPadding
na fałsz, w przeciwnym razie dopełnienie odetnie obszar przewijania. Oto przykładZobacz, że wypełnienie doda 4 dp ze wszystkich stron, w tym na górze i na dole. Następnie parametr clipToPadding zapewnia, że elementy podrzędne nie są odcinane. Teraz dodaj
4dp
wyściółkę ze wszystkich stron dla przedmiotów dziecięcych i gotowe. W sumie otrzymujesz wyściółkę 8 dp po bokach i między elementami.źródło
Zamiast dodawać dopełnienie zarówno do górnych, jak i dolnych elementów, możesz po prostu dodać dopełnienie do górnej i dolnej części RecyclerView i ustawić
clipToPadding
atrybut nafalse
.źródło
zastosowanie
ItemDecoration
:i
źródło
notifyItemInserted
/Removed
narysuje tylko jedną pozycję / usunie przedmiot i wyczyści,View
pozostawiając wszystkie inne dzieci nietknięte. np. gdy jakaś pozycja jest pierwsza na liście (rysowana z górnym wypełnieniem) a my dodajemy nowy na górze, to poprzednio-pierwsza-obecnie-druga pozycja nadal będzie dopełniona na górze ... łatwą naprawą jest wywołanienotifyDataSetChanged
(wymuszone przerysowanie all ...), bardziej złożone wymagają logiki rozpoznawania tego przedmiotu, który był na pierwszej i / lub ostatniej pozycji, przesunął się, a następnie zadzwoniłnotifyItemChanged(newPositionOfOldFirstAndOrLastItem)
Dodaj
android:clipToPadding="false"
iandroid:paddingBottom="100dp"
w widoku recyklingu.źródło
Dodaj android: clipToPadding = "false" i android: paddingBottom = "65dp" w widoku recyklingu. Jeśli używasz przycisku menu fab i akcji w komórce widoku recyklera.
źródło
Z jakiegoś powodu stary
clipToPadding=false
rozwiązanie nie działa dla mnie. Więc dodałem ItemDecorationhttps://gist.github.com/kassim/582888fa5960791264fc92bc41fb6bcf
źródło
Zmodyfikowałem niesamowitą odpowiedź @snachmsm odpowiedź na lepsze i dam ci pomysł, jak prawidłowo używać
źródło