Android cosa fa l'attributo clipToPadding?


171

Vorrei sapere a cosa clipToPaddingserve l' attributo per ViewGroupAndroid?

Ho esaminato i documenti e alcuni siti Web, ma nessuno in cui mi sono imbattuto in realtà spiega cosa fa e cosa significa, beh nessuno che potrei effettivamente capire, quindi ho pensato che potesse essere una buona idea chiederlo qui.

Risposte:


421

È possibile utilizzare clipToPadding per le viste che scorrono. Supponi di avere una visualizzazione elenco per esempio e di avere un'imbottitura impostata in alto e in basso. Normalmente l'imbottitura è visibile indipendentemente dagli elementi visibili sullo schermo. Il diagramma seguente rappresenta un elenco con 10 elementi ma solo 4 sono visibili sullo schermo, con le impostazioni predefinite di clipToPadding:

  • (imbottitura)
  • punto 4
  • punto 5
  • punto 6
  • punto 7
  • (imbottitura)

Ora, se dovessi impostare clipToPadding="false"invece di essere applicato normalmente all'intera vista, applica solo il riempimento agli elementi finali, questo è ciò che vedresti nello stesso scenario:

  • punto 4
  • punto 5
  • punto 6
  • punto 7

Ora se dovessi scorrere fino all'inizio o alla fine dell'elenco, questo è ciò che vedresti:

  • (imbottitura)
  • articolo 1
  • articolo 2
  • punto 3
  • punto 4

O

  • punto 7
  • punto 8
  • punto 9
  • articolo 10
  • (imbottitura)

Un utilizzo pratico per questo è se ad esempio hai un pulsante di azione mobile, dovresti usare clipToPadding combinato con un'imbottitura inferiore per assicurarti che l'intero elemento in basso possa essere visto senza essere ostruito dal FAB.

Ha senso?


59
Sono pronto a pagare se i documenti ufficiali iniziano a dare questo tipo di spiegazione per altri argomenti
Manish Kumar Sharma,

Si applica solo a recyclerview o a qualsiasi viewgroup?
RamPrasadBismil,

Adoro questo commento e sempre che devo affrontare una clip per l'imbottitura devo tornare ad esso! Grazie :)
Pol

Spiegazione molto bella! Congratulazioni!
Maycon Cardoso,

302

So che la risposta più votata lo spiega abbastanza chiaramente attraverso il testo ma, come detto,

" Un'immagine vale più di mille parole "

Ecco una GIF del valore di 1500 raffigurante lo stesso:

(A sinistra: clipToPadding = "true"a destra: clipToPadding = "false")

inserisci qui la descrizione dell'immagine


6
Eppure in qualche modo le risposte basate sul testo sono più facili da capire;) Grazie per la vis!
TWiStErRob,

2
l'immagine dice molto più delle parole, ma le parole erano molto più complete ... qui non è mostrata la fine dell'elenco a destra che cosa è successo se ha un'imbottitura inferiore ...
MHSFisher


6

Ti consiglio di dare un'occhiata a questo articolo https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g

O forse vuoi che RecyclerView scorra sotto una barra di navigazione trasparente - usando android: fitsSystemWindows = "true" in combinazione con android: clipToPadding = "false", il tuo contenuto di scorrimento sarà dietro i controlli ma, quando scorre verso il basso, l'ultimo oggetto verrà comunque riempito per essere sopra la barra di navigazione (piuttosto che nascosto sotto!).


-2

Definisce se la ViewGroupclip verrà ritagliata dai suoi figli e ridimensionata (ma non ritagliata) in base EdgeEffectal suo riempimento, se il riempimento non è zero. Questa proprietà è impostata di truedefault.

Può essere un valore booleano, ad esempio "vero" o "falso".

Metodi correlati:

setClipToPadding(boolean)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.