Je voudrais savoir ce que l'attribut clipToPadding
fait pour ViewGroup
dans Android?
J'ai consulté la documentation et certains sites Web, mais aucun de ceux que j'ai rencontrés n'explique vraiment ce que cela signifie et ce que cela signifie. Enfin, aucun que je ne puisse comprendre, j'ai donc pensé que ce serait une bonne idée de le poser ici.
Vous pouvez utiliser clipToPadding pour les vues qui défilent. Supposons que vous ayez une vue en liste par exemple et que vous ayez un padding défini en haut et en bas. Normalement, le remplissage est visible quels que soient les éléments visibles à l'écran. Le diagramme ci-dessous représente une liste de 10 éléments, mais seuls 4 sont visibles à l'écran, avec les paramètres par défaut de clipToPadding:
Maintenant, si vous définissiez clipToPadding="false"
au lieu d'être appliqué simplement à la vue entière, le remplissage des éléments finaux est appliqué, voici ce que vous verriez dans le même scénario:
Maintenant, si vous deviez faire défiler vers le haut ou le bas de la liste, voici ce que vous verriez:
OR
Une utilisation pratique de ceci est que si vous avez un bouton d'action flottant, par exemple, vous devez utiliser clipToPadding en combinaison avec un remplissage du bas pour vous assurer que l'intégralité de l'élément du bas peut être vue sans être gênée par le FAB.
Cela a-t-il du sens?
Un bon usage de clipToPadding
est décrit dans https://www.youtube.com/watch?v=O47H4PxMf9 (partie de conception matérielle d'Udacity bien sûr)
En utilisant clipToPadding="false"
, la vue de défilement défile au-dessus de l'icône Google Maps supérieure. Cela est dû au fait qu’ils sont tous deux dans la même FrameLayout
.
Je vous recommande de jeter un coup d'œil à cet article https://medium.com/google-developers/why-would-i-want-tofitssystemwindows-4e26d9ce1eec#.5x2hz7q0g
Ou peut-être souhaitez-vous que votre RecyclerView défile sous une barre de navigation transparente - en utilisant Android: fitsSystemWindows = "true" en conjonction avec Android: clipToPadding = "false", votre contenu défilant sera placé derrière le contrôle, mais lorsque vous faites défiler l'écran vers le bas, le dernier élément sera toujours complété au-dessus de la barre de navigation (plutôt que caché dessous!).