69

Quali sono i vantaggi di RelativeLayout su LinearLayout in Android? Per un design particolare quale preferiresti e qual'è la ragione?LinearLayout vs RelativeLayout

È (RelativeLayout) paragonabile o simile come HTML <div> ??

+3

suo meglio se la ricerca il tag domanda [LinearLayout vs RelativeLayout] (http://www.google.co.in/search?q=LinearLayout+vs+RelativeLayout&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a) su google. – user370305

+0

+1 e c'è una buona risposta in questo articolo: [Quando utilizzare LinearLayout vs. RelativeLayout] (http://logc.at/2011/10/18/when-to-use-linearlayout-vs-relativelayout/) – scatmoi

risposta

45

this article Leggi:

Il toolkit UI Android offre diversi gestori di layout che sono piuttosto facile da usare e, il più delle volte, è necessario solo le caratteristiche di base di questi gestori di layout per implementare un'interfaccia utente. Sfortunatamente, attenersi alle funzionalità di base non è il modo più efficiente per creare interfacce utente. Un esempio comune è l'abuso di LinearLayout, che porta a una proliferazione di visualizzazioni nella gerarchia della vista. Ogni vista, o peggio di ogni gestore di layout, che aggiungi alla tua applicazione ha un costo: l'inizializzazione, il layout e il disegno diventano più lenti. Il passaggio di layout può essere particolarmente costoso quando si nidificano diversi LinearLayout che utilizzano il parametro weight, che richiede che il bambino venga misurato due volte ...

In un RelativeLayout, le viste sono allineate con il rispettivo genitore, RelativeLayout stesso o altri punti di vista Ad esempio, abbiamo dichiarato che la descrizione è allineata con la parte inferiore di RelativeLayout e che il titolo è posizionato sopra la descrizione e ancorato alla parte superiore del genitore. Con la descrizione GONE, RelativeLayout non sa dove posizionare il bordo inferiore del titolo. Per risolvere questo problema, puoi utilizzare un parametro di layout molto speciale chiamato alignWithParentIfMissing.

Questo parametro booleano indica semplicemente a RelativeLayout di utilizzare i propri bordi come ancore quando manca un target di vincolo. Ad esempio, se posizioni una vista a destra di una vista GONE e imposta alignWithParentIfMissing su true, RelativeLayout ancorerà la vista al suo bordo sinistro. Nel nostro caso, l'uso di alignWithParentIfMissing causerà RelativeLayout per allineare il fondo del titolo con il proprio fondo.

... la differenza sarà molto più importante quando si utilizza un tale layout per ogni elemento in un controllo ListView per esempio ...

+0

https://www.crittercism.com/blog/android-performance-tip-1/ –

14

Con il nome che si può conoscere LinearLayout aggiunge la vista in modo lineare o verticale o orizzontale in base all'orientamento impostato dall'utente. Aggiungerà le visualizzazioni una dopo l'altra che dipenderà dal requisito del design. E RelativeLayout aggiunge viste correlate tra loro, non è necessario dichiarare l'orientamento in RelativeLayout.

Come per esempio si desidera aggiungere due TextView s uno sotto l'altro in modo da aggiungere prima TextView e si riferiscono alla seconda TextView con il primo TextView aggiungendo android:layout_below="first textview's id" nel file XML. In questo modo puoi gestire RelativeLayout.

Problemi correlati