8

Buduję aplikację z jednym działaniem MainActivity, która składa się z dwóch fragmentów. I natknąłem się na wiele samouczków, które używają FrameLayout jako kontener nadrzędny dla układu fragmentów.Czy można używać LinearLayout zamiast FrameLayout?

Jednak dowiedziałem się, że mogę nadal używać LinearLayout jako kontener nadrzędny fragmentu i działa idealnie dobrze (do tej pory).

Moje pytanie brzmi: czy istnieje jakiś efekt uboczny (nie) użycia FrameLayout jako kontenera nadrzędnego dla układu fragmentów?

Jeśli nie jest, jaka jest korzyść z używania FrameLayout przez LinearLayout (lub inny możliwy układ) jako kontener nadrzędny układu fragmentów.

+0

Czy możesz opublikować kod, w którym używasz 'FrameLayout' i' LinearLayout' –

+2

Powinieneś zmienić tytuł, mówi fragmentlayout ... –

Odpowiedz

3

Fragments sami są renderowane jak każdy View, dzięki czemu można używać niezależnie od rodzica ViewGroup chcesz w zależności od tego, jak chcesz, aby układ szukać. Oznacza to, że nie ma żadnej nieodłącznej korzyści z LinearLayout vs FrameLayout związanej z Fragments w ogóle.

Główna różnica między FrameLayout i LinearLayout polega na tym, że stos Views w obrębie FrameLayout.

Innymi słowy, jeśli chcesz, aby Twój Fragments mógł potencjalnie zachodzić na siebie, użyj FrameLayout. Jeśli chcesz je wyświetlać liniowo, użyj LinearLayout. Jeśli jest to pełny ekran Fragment, prawdopodobnie nie ma to znaczenia.

4

FrameLayout jest bardziej wydajny niż LinearLayout i RelativeLayout. Ponieważ jest to najprostszy układ podstawowy i nie ma powiązania między układami podrzędnymi. FrameLayout nadaje się do widoków piętrowych i często jest używany z ScrollView.

2

To doskonale. Możesz użyć. Ale ogólnie:

LinearLayout służy do wyrównania widoków pojedynczo w pionie lub w poziomie. aby wiele widoków podrzędnych mogło odpowiednio się układać.

FrameLayout służy do ładowania widoków jeden nad drugim. więc FrameLayout służy do przechowywania pojedynczego widoku podrzędnego, ponieważ trudno jest zarządzać wieloma widokami w FrameLayout. Na przykład jeśli chcesz użyć pojedynczego CardView, to idealne jest FrameLayout.

Powiązane problemy