J'aimerais savoir à quoi clipToPaddingsert l' attribut ViewGroupsous Android?
J'ai parcouru la documentation et certains sites Web, mais aucun de ceux que j'ai rencontrés n'explique réellement ce que cela fait et ce que cela signifie, enfin aucun que je puisse comprendre, alors j'ai pensé que ce serait une bonne idée de le demander ici.
Vous pouvez utiliser clipToPadding pour les vues qui défilent. Supposons que vous ayez une vue de liste par exemple et que vous ayez un remplissage 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:
(rembourrage)
élément 4
point 5
point 6
point 7
(rembourrage)
Maintenant, si vous deviez définir clipToPadding="false"au lieu d'être simplement appliqué normalement à la vue entière, il n'applique que le remplissage aux éléments finaux, voici ce que vous verriez dans le même scénario:
élément 4
point 5
point 6
point 7
Maintenant, si vous deviez faire défiler vers le haut ou le bas de la liste, voici ce que vous verriez:
(rembourrage)
objet 1
élément 2
élément 3
élément 4
OU
point 7
point 8
point 9
point 10
(rembourrage)
Une utilisation pratique pour cela est que si vous avez un bouton d'action flottant par exemple, vous devez utiliser clipToPadding combiné avec un rembourrage inférieur pour vous assurer que l'intégralité de l'élément inférieur peut être vu sans être obstrué par le FAB.
Pourtant, les réponses textuelles sont plus faciles à comprendre;) Merci pour la vis!
TWiStErRob
2
l'image en dit beaucoup plus que des mots, mais les mots étaient beaucoup plus complets ... ici pas montré la fin de la bonne liste que ce qui s'est passé pour elle si elle a un rembourrage en bas ...
L'utilisation clipToPadding="false"fait défiler la vue de défilement sur l'icône Google Maps supérieure. Cela est dû au fait que les deux sont à l'intérieur du même FrameLayout.
Ou peut-être voulez-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 de défilement sera derrière les commandes mais, lorsque vous le faites défiler vers le bas, le dernier élément sera toujours rempli pour être au-dessus de la barre de navigation (plutôt que caché en dessous!).
Définit si le ViewGroupdécoupera ses enfants et les redimensionnera (mais pas) EdgeEffectà son remplissage, si le remplissage n'est pas égal à zéro. Cette propriété est définie truepar défaut.
Peut être une valeur booléenne, telle que "true" ou "false".
Je sais que la réponse la mieux notée l'explique assez clairement à travers le texte, mais comme il est dit,
" Une image vaut mille mots "
Voici un GIF d'une valeur de 1500 représentant le même:
(Gauche:
clipToPadding = "true"
droite:clipToPadding = "false"
)la source
Une belle utilisation de
clipToPadding
est décrite dans https://www.youtube.com/watch?v=O47H4PxMf9U (dans le cadre du cours de conception de matériaux d' Udacity )L'utilisation
clipToPadding="false"
fait défiler la vue de défilement sur l'icône Google Maps supérieure. Cela est dû au fait que les deux sont à l'intérieur du mêmeFrameLayout
.la source
Je vous recommande de jeter un œil à cet article https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g
la source
Définit si le
ViewGroup
découpera ses enfants et les redimensionnera (mais pas)EdgeEffect
à son remplissage, si le remplissage n'est pas égal à zéro. Cette propriété est définietrue
par défaut.Peut être une valeur booléenne, telle que "true" ou "false".
Méthodes associées:
setClipToPadding(boolean)
la source