Me gustaría saber para qué clipToPaddingsirve el atributo ViewGroupen Android.
He revisado los documentos y algunos sitios web, pero ninguno de los que he encontrado explica realmente lo que hace y lo que significa, bueno, ninguno que pudiera entender, así que pensé que sería una buena idea preguntarlo aquí.
Puede usar clipToPadding para vistas que se desplazan. Supongamos que tiene una vista de lista, por ejemplo, y que tiene un relleno en la parte superior e inferior. Normalmente, el relleno es visible sin importar qué elementos estén visibles en la pantalla. El siguiente diagrama representa una lista con 10 elementos, pero solo 4 son visibles en la pantalla, con la configuración predeterminada de clipToPadding:
(relleno)
elemento 4
elemento 5
elemento 6
elemento 7
(relleno)
Ahora, si tuviera que configurar en clipToPadding="false"lugar de simplemente aplicarse normalmente a toda la vista, solo aplica el relleno a los elementos finales, esto es lo que vería en el mismo escenario:
elemento 4
elemento 5
elemento 6
elemento 7
Ahora, si tuviera que desplazarse hasta la parte superior o inferior de la lista, esto es lo que vería:
(relleno)
Artículo 1
elemento 2
elemento 3
elemento 4
O
elemento 7
elemento 8
elemento 9
artículo 10
(relleno)
Un uso práctico para esto es si tiene un botón de acción flotante, por ejemplo, debe usar clipToPadding combinado con el relleno inferior para garantizar que se pueda ver la totalidad del elemento inferior sin ser obstruido por la FAB.
Sin embargo, de alguna manera las respuestas basadas en texto son más fáciles de entender;) ¡Gracias por la visita!
TWiStErRob
2
foto dice mucho más que palabras, pero las palabras eran mucho más completa ... aquí no se muestra la lista final de la derecha que lo sucedido ya que si se tiene un acolchado inferior ...
El uso clipToPadding="false"hace que la vista de desplazamiento se desplace sobre el ícono superior de Google Maps. Esto se debe a que ambos están dentro del mismo FrameLayout.
O tal vez desee que su RecyclerView se desplace debajo de una barra de navegación transparente, usando android: fitsSystemWindows = "true" junto con android: clipToPadding = "false", su contenido de desplazamiento estará detrás de los controles pero, cuando se desplaza hacia la parte inferior, el último elemento seguirá estando acolchado para estar sobre la barra de navegación (¡en lugar de estar oculto debajo!).
Define si ViewGrouprecortará sus elementos secundarios y redimensionará (pero no recortará) ninguno EdgeEffecta su relleno, si el relleno no es cero. Esta propiedad está configurada truede manera predeterminada.
Puede ser un valor booleano, como "verdadero" o "falso".
Sé que la respuesta mejor calificada explica esto claramente a través del texto, pero como se dice
" Una imagen vale más que mil palabras "
Aquí hay un GIF de 1500 que representa lo mismo:
(Izquierda:
clipToPadding = "true"
Derecha:clipToPadding = "false"
)fuente
Un buen uso de
clipToPadding
se describe en https://www.youtube.com/watch?v=O47H4PxMf9U (parte del curso de Diseño de materiales de Udacity )El uso
clipToPadding="false"
hace que la vista de desplazamiento se desplace sobre el ícono superior de Google Maps. Esto se debe a que ambos están dentro del mismoFrameLayout
.fuente
Le recomiendo que lea este artículo https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g
fuente
Define si
ViewGroup
recortará sus elementos secundarios y redimensionará (pero no recortará) ningunoEdgeEffect
a su relleno, si el relleno no es cero. Esta propiedad está configuradatrue
de manera predeterminada.Puede ser un valor booleano, como "verdadero" o "falso".
Métodos relacionados:
setClipToPadding(boolean)
fuente