FlexBox è un contenitore che dispone gli elementi in una sola direzione. Può
ridimensionare, mandare a capo, allineare e distribuire lo spazio tra gli elementi per riempire in modo ottimale lo spazio
disponibile. È un layout utile per elementi di dimensioni diverse e per ridimensionare
gli elementi quando lo spazio disponibile cambia.
Con FlexBox puoi:
- Controllare la crescita e la riduzione degli elementi per riempire lo spazio disponibile
- Disporre gli elementi su nuove righe o colonne quando non c'è spazio sufficiente
- Distribuire lo spazio aggiuntivo tra gli elementi utilizzando comodi preset
Quando utilizzare FlexBox
FlexBox viene in genere utilizzato per visualizzare un numero ridotto di elementi all'interno di un layout dello schermo complessivo. Per un layout generale dello schermo,
Grid è in genere una scelta migliore. FlexBox non supporta il caricamento differito degli elementi. Per visualizzare un numero elevato di elementi, utilizza elenchi e griglie pigri. Se devi
andare a capo, utilizza FlexBox anziché FlowRow e FlowColumn.
Terminologia e concetti
FlexBox dispone gli elementi in linee orizzontali o verticali. Questa
direzione di queste linee stabilisce l'asse principale. L'asse trasversale è perpendicolare
all'asse principale. La lunghezza di FlexBox lungo l'asse principale è
nota come dimensione principale. La lunghezza dell'asse trasversale corrispondente è nota come
dimensione croce. Queste dimensioni e questi assi costituiscono la base del comportamento di FlexBox.
FlexBox è Row.
FlexBox è Column.Applicare le proprietà
Puoi applicare le proprietà FlexBox in due modi:
- Al container
FlexBoxutilizzandoFlexBox(config) - A un elemento all'interno di
FlexBoxutilizzandoModifier.flex
Proprietà container ( |
Proprietà degli elementi ( |
|---|---|
Per ulteriori informazioni su queste proprietà, consulta Impostare il comportamento del contenitore. |
Per ulteriori informazioni su queste proprietà, consulta Impostare il comportamento degli elementi. |
Informazioni sull'algoritmo di layout FlexBox
Una delle funzionalità più potenti di FlexBox è la capacità di ridimensionare i suoi elementi secondari
per adattarsi al meglio allo spazio disponibile. Comprendere come FlexBox esegue questa operazione può
aiutarti a impostare le proprietà FlexBox per ottimizzare la UI per tutte le dimensioni possibili.
L'algoritmo di layout di FlexBox funziona nel seguente modo:
Calcola la dimensione di base del figlio: utilizza il valore
basisdel figlio per calcolare la sua dimensione iniziale lungo l'asse principale prima che venga distribuito lo spazio aggiuntivo.Ordina i figli: ordina i figli in base ai valori di
order, se presenti.Righe di costruzione: per ogni elemento secondario, controlla se la sua dimensione iniziale più
gaprientra nello spazio rimanente sulla riga corrente. In questo caso, inserisci il bambino in coda. In caso contrario, inseriscilo in una nuova riga se il wrapping è attivato oppure inseriscilo nella riga corrente dove verrà visualizzato in overflow (sarà parzialmente oscurato dal bordo del contenitore).Allinea o ridimensiona gli elementi nell'asse principale: per ogni riga, distribuisci lo spazio aggiuntivo a o tra gli elementi ridimensionandoli o allineandoli.
Allinea o ridimensiona gli elementi nell'asse trasversale: per ogni riga, distribuisci lo spazio aggiuntivo agli elementi e alle righe o tra di loro allungandoli o allineandoli.
Ora che hai familiarità con i concetti di FlexBox, consulta la sezione Inizia per
creare un FlexBox di base.