Quali sono le differenze tra LinearLayout, RelativeLayout e AbsoluteLayout?


Risposte:


213

LinearLayout significa che è possibile allineare le viste una per una (verticalmente / orizzontalmente).

RelativeLayout significa basato sulla relazione di opinioni dei suoi genitori e di altre opinioni.

ConstraintLayout è simile a un RelativeLayout in quanto utilizza le relazioni per posizionare e dimensionare i widget, ma ha ulteriore flessibilità ed è più facile da usare nell'Editor layout.

WebView per caricare pagine html, statiche o dinamiche.

FrameLayout per caricare i bambini uno sopra l'altro, come le carte all'interno di un riquadro, possiamo posizionarli uno sopra l'altro o ovunque all'interno del riquadro.

deprecato - AbsoluteLayout significa che devi dare la posizione esatta dove dovrebbe essere la vista.

Per ulteriori informazioni, consultare questo indirizzo https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts



2
AbsoluteLayout è obsoleto!
Friggi il

3
@Fry ho risposto prima di 2 anni. Si prega di leggere la domanda.
Ganapathy C

Apparentemente AbsoluteLayoutè deprecato per un motivo; se il contenuto non si adatta, getta casualmente le cose in giro. Stai meglio con a LinearLayoute impostando tutti i suoi padding su 0.
EpicPandaForce,

50

definizioni:

  • Layout cornice: progettato per bloccare un'area sullo schermo per visualizzare un singolo elemento.
  • Layout lineare: un layout che dispone i suoi figli in una singola colonna o una singola riga.
  • Layout relativo: questo layout è un gruppo di viste che mostra le viste figlio in posizioni relative.
  • Layout tabella: un layout che organizza i suoi figli in righe e colonne.

Maggiori informazioni:

FrameLayout

FrameLayout è progettato per bloccare un'area sullo schermo per visualizzare un singolo elemento. In generale, FrameLayout dovrebbe essere utilizzato per contenere una vista figlio singola, poiché può essere difficile organizzare le viste figlio in un modo che sia scalabile a dimensioni dello schermo diverse senza che i bambini si sovrappongano. Tuttavia, è possibile aggiungere più figli a un FrameLayout e controllare la loro posizione all'interno di FrameLayout assegnando la gravità a ciascun figlio, utilizzando l' android:layout_gravityattributo.

Le viste figlio sono disegnate in una pila, con l'ultimo figlio aggiunto in cima. La dimensione del FrameLayout è la dimensione del suo figlio maggiore (più imbottitura), visibile o meno (se il padre del FrameLayout lo consente).

RelativeLayout

Un RelativeLayout è un'utilità molto potente per la progettazione di un'interfaccia utente perché può eliminare i gruppi di viste nidificate e mantenere piatta la gerarchia del layout, migliorando le prestazioni. Se ti ritrovi a utilizzare diversi gruppi LinearLayout nidificati, potresti essere in grado di sostituirli con un singolo RelativeLayout.

(Documenti attuali qui )

TableLayout

Un TableLayout è composto da un numero di TableRowoggetti, ognuno dei quali definisce una riga (in realtà, puoi avere altri figli, che verranno spiegati di seguito). I contenitori TableLayout non visualizzano le linee di confine per le loro righe, colonne o celle. Ogni riga ha zero o più celle; ogni cella può contenere un oggetto View. La tabella ha tante colonne quante sono le righe con il maggior numero di celle. Una tabella può lasciare celle vuote. Le celle possono estendersi su colonne, come in HTML.

La larghezza di una colonna è definita dalla riga con la cella più larga in quella colonna.


Nota : il layout assoluto è obsoleto.


4

LinearLayout: un layout che organizza i suoi figli in una singola riga orizzontale o verticale. Crea una barra di scorrimento se la lunghezza della finestra supera la lunghezza dello schermo. Ciò significa che è possibile allineare le viste una per una (verticalmente / orizzontalmente).

RelativeLayout: consente di specificare la posizione degli oggetti figlio l'uno rispetto all'altro (figlio A alla sinistra del figlio B) o al genitore (allineato alla parte superiore del genitore). Si basa sulla relazione delle opinioni dei suoi genitori e di altre opinioni.

WebView: per caricare pagine html, statiche o dinamiche.

Per ulteriori informazioni, consultare questo link: http://developer.android.com/guide/topics/ui/layout-objects.html


4

LinearLayout - In LinearLayout, le viste sono organizzate in orientamento verticale o orizzontale.

RelativeLayout - RelativeLayout è molto più complesso di LinearLayout, quindi offre molte più funzionalità. Le viste sono posizionate, come suggerisce il nome, una rispetto all'altra.

FrameLayout : si comporta come un singolo oggetto e le sue viste figlio sono sovrapposte. FrameLayout prende le dimensioni di secondo l'elemento figlio più grande.

Layout del coordinatore : questo è il ViewGroup più potente introdotto nella libreria di supporto Android. Si comporta come FrameLayout e ha molte funzionalità da coordinare tra le viste figlio, ad esempio pulsante mobile e snackbar, Barra degli strumenti con vista scorrevole.


2

Grande spiegazione qui:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android

LinearLayout organizza gli elementi fianco a fianco in orizzontale o in verticale.

RelativeLayout ti aiuta a organizzare gli elementi dell'interfaccia utente in base a regole specifiche. È possibile specificare regole come: allineare questo al bordo sinistro del genitore, posizionarlo a sinistra / a destra di questi elementi ecc.

AbsoluteLayout serve per il posizionamento assoluto, ovvero è possibile specificare coordinate esatte dove dovrebbe andare la vista.

FrameLayout consente il posizionamento delle viste lungo l'asse Z. Ciò significa che puoi impilare gli elementi della vista uno sopra l'altro.

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.