Jakie są różnice między LinearLayout, RelativeLayout i AbsoluteLayout?

Odpowiedzi:

213

LinearLayout oznacza, że ​​możesz wyrównywać widoki jeden po drugim (pionowo / poziomo).

RelativeLayout oznacza oparty na relacji poglądów rodziców i innych poglądów.

ConstraintLayout jest podobny do RelativeLayout, ponieważ wykorzystuje relacje do widżetów położenia i rozmiaru, ale ma dodatkową elastyczność i jest łatwiejszy w użyciu w Edytorze układu.

WebView ładować strony HTML, statyczne lub dynamiczne.

FrameLayout aby załadować dziecko jeden nad drugim, podobnie jak karty w ramce, możemy umieścić jeden nad drugim lub w dowolnym miejscu wewnątrz ramki.

przestarzałe - AbsoluteLayout oznacza, że ​​musisz podać dokładną pozycję tam, gdzie powinien być widok.

Aby uzyskać więcej informacji, sprawdź ten adres https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts

Ganapathy C.
źródło
2
Sprawdź ten link także koleś .. mobiforge.com/designing/story/…
Ganapathy C
2
AbsoluteLayout jest przestarzały!
Smaż
3
@Fry odpowiedziałem na to przed 2 lat. Proszę przeczytać pytanie.
Ganapathy C,
Najwyraźniej AbsoluteLayoutjest przestarzały z jakiegoś powodu; jeśli treść nie pasuje, losowo się rzuca. Lepiej jest LinearLayoutustawić i ustawić wszystkie jego wypełnienia na 0.
EpicPandaForce,
50

Definicje:

  • Układ ramki: ma na celu zablokowanie obszaru na ekranie w celu wyświetlenia pojedynczego elementu.
  • Układ liniowy: Układ, który układa swoje dzieci w jednej kolumnie lub w jednym rzędzie.
  • Układ względny: ten układ jest grupą widoków, która wyświetla widoki potomne w pozycjach względnych.
  • Układ tabeli: Układ, który układa swoje dzieci w rzędy i kolumny.

Więcej informacji:

FrameLayout

FrameLayout służy do blokowania obszaru na ekranie w celu wyświetlenia pojedynczego elementu. Zasadniczo FrameLayout powinien być używany do przechowywania pojedynczego widoku potomnego, ponieważ może być trudno zorganizować widoki potomne w sposób skalowalny do różnych rozmiarów ekranu bez nakładania się dzieci. Możesz jednak dodać wiele elementów podrzędnych do FrameLayout i kontrolować ich położenie w FrameLayout, przypisując grawitację każdemu dziecku, używając android:layout_gravityatrybutu.

Widoki potomne są rysowane w stosie, a ostatnio dodane dziecko jest na górze. Rozmiar FrameLayout to rozmiar jego największego elementu podrzędnego (plus dopełnienie), widoczny lub nie (jeśli pozwala na to element nadrzędny FrameLayout).

RelativeLayout

RelativeLayout to bardzo potężne narzędzie do projektowania interfejsu użytkownika, ponieważ może wyeliminować zagnieżdżone grupy widoków i utrzymać płaską hierarchię układu, co poprawia wydajność. Jeśli zauważysz, że używasz kilku zagnieżdżonych grup LinearLayout, być może będziesz w stanie zastąpić je jednym RelativeLayout.

(Aktualne dokumenty tutaj )

TableLayout

TableLayout składa się z wielu TableRowobiektów, z których każdy definiuje wiersz (w rzeczywistości możesz mieć inne elementy podrzędne, które zostaną wyjaśnione poniżej). Kontenery TableLayout nie wyświetlają linii obramowania dla swoich wierszy, kolumn lub komórek. Każdy wiersz ma zero lub więcej komórek; każda komórka może pomieścić jeden obiekt View. Tabela ma tyle kolumn, ile wierszy z największą liczbą komórek. Tabela może pozostawić puste komórki. Komórki mogą rozciągać się na kolumny, tak jak w HTML.

Szerokość kolumny jest określona przez wiersz z najszerszą komórką w tej kolumnie.


Uwaga : Układ absolutny jest przestarzały.

Devrath
źródło
4

LinearLayout: układ, który organizuje swoje dzieci w jednym poziomym lub pionowym rzędzie. Tworzy pasek przewijania, jeśli długość okna przekracza długość ekranu, co oznacza, że ​​możesz wyrównywać widoki jeden po drugim (pionowo / poziomo).

RelativeLayout: Umożliwia określenie położenia obiektów potomnych względem siebie (dziecko A na lewo od dziecka B) lub nadrzędnego (wyrównane do góry elementu nadrzędnego). Opiera się na relacji poglądów rodziców i innych poglądów.

WebView: ładowanie stron HTML, statycznych lub dynamicznych.

Aby uzyskać więcej informacji, zapoznaj się z tym linkiem: http://developer.android.com/guide/topics/ui/layout-objects.html

Raghvendra Tolia
źródło
4

LinearLayout - W LinearLayout widoki są zorganizowane w orientacji pionowej lub poziomej.

RelativeLayout - RelativeLayout jest znacznie bardziej złożony niż LinearLayout, dlatego zapewnia znacznie więcej funkcji. Widoki są umieszczane, jak sama nazwa wskazuje, względem siebie.

FrameLayout - Zachowuje się jak pojedynczy obiekt, a jego widoki potomne nakładają się na siebie. FrameLayout przyjmuje rozmiar zgodny z największym elementem potomnym.

Układ koordynatora - jest to najpotężniejszy ViewGroup wprowadzony w bibliotece obsługi Androida. Zachowuje się jak FrameLayout i ma wiele funkcji do koordynowania między widokami potomnymi, na przykład pływający przycisk i pasek przekąsek, pasek narzędzi z przewijalnym widokiem.

Tulsi
źródło
2

Świetne wyjaśnienie tutaj:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android

LinearLayout układa elementy obok siebie w poziomie lub w pionie.

RelativeLayout pomaga ułożyć elementy interfejsu użytkownika w oparciu o określone reguły. Możesz określić reguły, takie jak: wyrównaj to do lewej krawędzi rodzica, umieść to po lewej / prawej stronie tych elementów itp.

AbsoluteLayout służy do bezwzględnego pozycjonowania, tzn. Możesz określić dokładne współrzędne, w których powinien iść widok.

FrameLayout umożliwia umieszczanie widoków wzdłuż osi Z. Oznacza to, że możesz układać elementy widoku jeden nad drugim.

taha027
źródło