8

Sto costruendo un'applicazione con un'attività pari a MainActivity composta da due frammenti. E mi sono imbattuto in molte esercitazioni che usano FrameLayout come contenitore genitore per il layout del frammento.Va bene usare LinearLayout invece di FrameLayout?

Tuttavia, sono venuto a sapere che posso ancora utilizzare LinearLayout come contenitore principale del frammento e funziona perfettamente bene (finora).

La mia domanda, c'è qualche effetto collaterale di non usare FrameLayout come contenitore genitore per il layout del frammento?

In caso contrario, qual è il vantaggio dell'utilizzo di FrameLayout su LinearLayout (o altro layout possibile) come contenitore principale del layout del frammento.

+0

puoi postare il codice che usi 'FrameLayout' e' LinearLayout' –

+2

Dovresti cambiare il titolo, si dice frammentlayout ... –

risposta

3

Fragments vengono visualizzati come qualsiasi View, quindi è possibile utilizzare qualsiasi genitore ViewGroup che si desidera in base a come si desidera che il layout venga visualizzato. Ciò significa che non vi è alcun vantaggio intrinseco di LinearLayout rispetto a FrameLayout legato a Fragments.

La differenza principale tra FrameLayout e è lo stack Views all'interno di FrameLayout.

In altre parole, se si desidera che il valore Fragments si sovrapponga, utilizzare FrameLayout. Se si desidera visualizzarli linearmente, utilizzare LinearLayout. Se è a schermo intero Fragment allora probabilmente non importa quale scegli.

4

FrameLayout è più efficiente di LinearLayout e RelativeLayout. Poiché è il layout di base più semplice e non esiste un'associazione tra i layout figlio. FrameLayout è adatto per visualizzazioni stack-up e spesso utilizzato con ScrollView.

2

È perfettamente soddisfacente. Puoi usare. Ma, in generale:

LinearLayout viene utilizzato per allineare le viste una alla volta verticalmente o orizzontalmente. in modo che più viste figlio possano organizzarsi di conseguenza.

FrameLayout viene utilizzato per caricare le viste una sopra l'altra. quindi FrameLayout utilizza per mantenere la visualizzazione figlio singolo perché è difficile gestire più visualizzazioni in FrameLayout. Per es. se si desidera utilizzare il singolo CardView, quindi FrameLayout è perfetto.