Android, ¿qué hace el atributo clipToPadding?

171

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í.

Ersen Osman
fuente

Respuestas:

421

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.

¿Tiene sentido?

Dom
fuente
59
Estoy listo para pagar si los documentos oficiales comienzan a dar este tipo de explicación para otros temas
Manish Kumar Sharma
¿Solo se aplica a la vista de reciclaje o a cualquier grupo de vista?
RamPrasadBismil
¡Me encanta este comentario y siempre tengo que volver a leer un clip de relleno! Gracias :)
Pol
Muy buena explicación! Felicidades!
Maycon Cardoso
302

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")

ingrese la descripción de la imagen aquí

Manish Kumar Sharma
fuente
66
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 ...
MHSFisher
6

Le recomiendo que lea este artículo https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g

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!).

cpienovi
fuente
-2

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".

Métodos relacionados:

setClipToPadding(boolean)

Abhinav Gupta
fuente