J'essaie d'ajouter Padding / Margin Bottom dans la dernière ligne et Padding / Margin Top dans la première ligne. Je ne peux pas le faire dans l'élément xml car cela affecterait tous mes enfants.
J'ai des en-têtes et des enfants dans mon adaptateur RecyclerView, je ne peux donc pas utiliser le
android:padding="4dp"
android:clipToPadding="false"
Je dois l'utiliser individuellement sur la dernière première ligne de chaque en-tête
android
android-recyclerview
padding
Aigle Rouge
la source
la source
Réponses:
J'utilise ça dans kotlin
la source
Ce problème est encore plus facile à résoudre. Vous pouvez appliquer le remplissage nécessaire à
RecylerView
lui - même et définirclipToPadding
sur false, sinon, le remplissage coupera votre zone de défilement. Voici un exempleVoir le rembourrage ajoutera 4dp sur tous les côtés, y compris le haut et le bas. Ensuite, le paramètre clipToPadding s'assure que vos éléments enfants ne sont pas coupés. Maintenant, ajoutez un
4dp
rembourrage de tous les côtés pour vos articles enfants, et vous êtes prêt à partir. Au total, vous obtenez un rembourrage de 8dp sur les côtés et entre les éléments.la source
Au lieu d'ajouter un remplissage aux éléments du haut et du bas, vous pouvez simplement ajouter le remplissage en haut et en bas de votre RecyclerView et définir l'
clipToPadding
attribut surfalse
.la source
utiliser
ItemDecoration
:et
la source
notifyItemInserted
/Removed
dessinera un seul élément / supprimera l'élément et nettoiera tout enView
laissant tous les autres enfants intacts. Par exemple, lorsqu'un élément est le premier sur la liste (dessiné avec un rembourrage supérieur) et que nous en ajoutons un nouveau en haut, alors l'élément précédemment premier-actuellement-deuxième sera toujours rempli en haut ... une solution facile est d'appelernotifyDataSetChanged
(forcer le redessiner all ...), plus complexe nécessite une logique pour reconnaître cet élément, qui était en première et / ou dernière position, déplacé puis appelnotifyItemChanged(newPositionOfOldFirstAndOrLastItem)
Ajoutez
android:clipToPadding="false"
etandroid:paddingBottom="100dp"
dans votre vue de recyclage.la source
Ajoutez android: clipToPadding = "false" et android: paddingBottom = "65dp" dans votre vue de recyclage. Si vous utilisez le bouton de menu fab et les actions sur la cellule de vue du recycleur.
la source
Pour une raison quelconque, l'ancienne
clipToPadding=false
solution ne fonctionne pas pour moi. J'ai donc ajouté un ItemDecorationhttps://gist.github.com/kassim/582888fa5960791264fc92bc41fb6bcf
la source
J'ai modifié la réponse incroyable @snachmsm pour mieux et vous donner une idée de la façon de l'utiliser correctement
la source