web-dev-qa-db-fra.com

Quelles sont les différences entre LinearLayout, RelativeLayout et AbsoluteLayout?

Je suis confus quant à la différence entre LinearLayout, RelativeLayout et AbsoluteLayout. Quelqu'un pourrait-il s'il vous plaît me dire les différences exactes entre eux?

171
ezhil

LinearLayout signifie que vous pouvez aligner les vues une par une (verticalement/horizontalement).

RelativeLayout signifie basé sur la relation de vues de ses parents et d'autres vues.

ConstraintLayout est similaire à RelativeLayout en ce sens qu'il utilise des relations pour positionner et redimensionner les widgets, mais offre une flexibilité supplémentaire et est plus facile à utiliser dans l'éditeur de mise en page.

WebView pour charger des pages HTML, statiques ou dynamiques.

FrameLayout pour charger les enfants les uns au dessus des autres, comme les cartes à l'intérieur d'un cadre, nous pouvons en placer un au dessus des autres ou n'importe où à l'intérieur du cadre.

obsolète - AbsoluteLayout signifie que vous devez indiquer la position exacte de la vue.

Pour plus d'informations, veuillez consulter cette adresse https://developer.Android.com/guide/topics/ui/declaring-layout#CommonLayouts

199
Ganapathy C

Définitions:

  • Présentation du cadre: cette fonction est conçue pour bloquer une zone de l'écran afin d'afficher un seul élément.
  • Disposition linéaire: une disposition qui classe ses enfants dans une seule colonne ou une seule ligne.
  • Mise en page relative: cette mise en page est un groupe de vues qui affiche les vues enfants dans des positions relatives.
  • Mise en page de table: Une mise en page qui organise ses enfants en lignes et en colonnes.

Plus d'informations:

FrameLayout

FrameLayout est conçu pour bloquer une zone de l'écran afin d'afficher un seul élément. En règle générale, FrameLayout doit être utilisé pour gérer une seule vue enfant, car il peut s'avérer difficile d'organiser les vues enfant de manière à pouvoir être redimensionnées à différentes tailles d'écran sans que les enfants ne se chevauchent. Vous pouvez cependant ajouter plusieurs enfants à un FrameLayout et contrôler leur position dans FrameLayout en affectant la gravité à chaque enfant, à l'aide de l'attribut Android:layout_gravity.

Les vues enfant sont dessinées dans une pile, avec le dernier enfant ajouté en haut. La taille de FrameLayout est la taille de son plus grand enfant (plus le rembourrage) visible ou non (si le parent de FrameLayout le permet).

RelativeLayout

RelativeLayout est un utilitaire très puissant pour la conception d'une interface utilisateur, car il permet d'éliminer les groupes de vues imbriqués et de conserver la hiérarchie de votre disposition à plat, ce qui améliore les performances. Si vous utilisez plusieurs groupes LinearLayout imbriqués, vous pourrez peut-être les remplacer par un seul RelativeLayout.

(Documents actuels ici )

TableLayout

Un TableLayout est composé d'un certain nombre d'objets TableRow, chacun définissant une ligne (en fait, vous pouvez avoir d'autres enfants, ce qui sera expliqué ci-dessous). Les conteneurs TableLayout n'affichent pas les lignes de bordure pour leurs lignes, leurs colonnes ou leurs cellules. Chaque ligne a zéro ou plusieurs cellules; chaque cellule peut contenir un seul objet View. La table a autant de colonnes que la ligne contenant le plus de cellules. Une table peut laisser des cellules vides. Les cellules peuvent s'étendre sur des colonnes, comme c'est le cas en HTML.

La largeur d'une colonne est définie par la ligne avec la cellule la plus large dans cette colonne.


Remarque : La disposition absolue est obsolète.

48
Devrath

LinearLayout: Un modèle qui organise ses enfants en une seule ligne horizontale ou verticale. Il crée une barre de défilement si la longueur de la fenêtre dépasse celle de l'écran. Cela signifie que vous pouvez aligner les vues une par une (verticalement/horizontalement).

RelativeLayout: Ceci vous permet de spécifier l'emplacement des objets enfants les uns par rapport aux autres (enfant A à gauche de l'enfant B) ou au parent (aligné au sommet du parent). Il est basé sur la relation de points de vue de ses parents et d’autres points de vue.

WebView: pour charger des pages HTML, statiques ou dynamiques.

Pour plus d'informations, consultez ce lien: http://developer.Android.com/guide/topics/ui/layout-objects.html

4
Raghvendra Tolia

LinearLayout - Dans LinearLayout, les vues sont organisées en orientation verticale ou horizontale.

RelativeLayout - RelativeLayout est beaucoup plus complexe que LinearLayout et fournit donc beaucoup plus de fonctionnalités. Les vues sont placées, comme leur nom l'indique, les unes par rapport aux autres.

FrameLayout - Il se comporte comme un objet unique et ses vues enfant se chevauchent. FrameLayout prend la taille correspondant à l'élément enfant le plus important.

Mise en page du coordinateur - Il s'agit du plus puissant ViewGroup introduit dans la bibliothèque de support Android. Il se comporte comme FrameLayout et dispose de nombreuses fonctionnalités à coordonner entre ses vues enfants, par exemple, un bouton flottant et une barre de menu, une barre d'outils avec vue défilable.

4
Tulsi

Grande explication ici:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-Android

LinearLayout organise les éléments côte à côte horizontalement ou verticalement.

RelativeLayout vous aide à organiser vos éléments d'interface utilisateur en fonction de règles spécifiques. Vous pouvez spécifier des règles telles que: aligner cela sur le bord gauche du parent, le placer à gauche/droite de cet élément, etc.

AbsoluteLayout est destiné au positionnement absolu, c’est-à-dire que vous pouvez spécifier les coordonnées exactes de la vue.

FrameLayout permet de placer des vues sur l'axe Z. Cela signifie que vous pouvez empiler vos éléments de vue les uns sur les autres.

2
taha027