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

Réponses:

213

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

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

ConstraintLayout est similaire à RelativeLayout en ce qu'il utilise des relations pour positionner et dimensionner 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 des cartes dans un cadre, on peut les placer les unes au-dessus des autres ou n'importe où à l'intérieur du cadre.

obsolète - AbsoluteLayout signifie que vous devez indiquer la position exacte où la vue doit être.

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

Ganapathie C
la source
2
Vérifiez ce lien aussi mec .. mobiforge.com/designing/story/…
Ganapathy C
2
AbsoluteLayout est obsolète!
Fry
3
@Fry j'ai répondu à cela avant 2 ans. Veuillez lire la question.
Ganapathy C
Apparemment, il AbsoluteLayoutest obsolète pour une raison; si le contenu ne correspond pas, il jette les choses au hasard. Vous êtes mieux avec un LinearLayoutet régler tous ses rembourrages sur 0.
EpicPandaForce
50

Définitions:

  • Disposition du cadre: Ceci est conçu pour bloquer une zone sur l'écran pour afficher un seul élément.
  • Disposition linéaire: une disposition qui organise ses enfants dans une seule colonne ou une seule ligne.
  • Disposition relative: cette disposition est un groupe de vues qui affiche les vues enfants dans des positions relatives.
  • Disposition de la table: une disposition qui organise ses enfants en lignes et en colonnes.

Plus d'information:

FrameLayout

FrameLayout est conçu pour bloquer une zone sur l'écran pour afficher un seul élément. En règle générale, FrameLayout doit être utilisé pour contenir une seule vue enfant, car il peut être difficile d'organiser les vues enfants de manière à s'adapter à différentes tailles d'écran sans que les enfants se chevauchent. Vous pouvez cependant ajouter plusieurs enfants à un FrameLayout et contrôler leur position dans le FrameLayout en attribuant une gravité à chaque enfant à l'aide de l' android:layout_gravityattribut.

Les vues enfants sont dessinées dans une pile, avec l'enfant le plus récemment ajouté en haut. La taille du FrameLayout est la taille de son plus grand enfant (plus le remplissage), visible ou non (si le parent du FrameLayout le permet).

RelativeLayout

Un RelativeLayout est un utilitaire très puissant pour la conception d'une interface utilisateur, car il peut éliminer les groupes de vues imbriqués et maintenir 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 se compose d'un certain nombre d' TableRowobjets, 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 de lignes de bordure pour leurs lignes, colonnes ou cellules. Chaque ligne a zéro ou plusieurs cellules; chaque cellule peut contenir un objet View. Le tableau a autant de colonnes que la ligne avec le plus de cellules. Un tableau peut laisser des cellules vides. Les cellules peuvent s'étendre sur des colonnes, comme elles le peuvent 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.

Devrath
la source
4

LinearLayout: mise en page 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 la longueur de l'écran, ce qui signifie que vous pouvez aligner les vues une par une (verticalement / horizontalement).

RelativeLayout: Cela vous permet de spécifier l'emplacement des objets enfants les uns par rapport aux autres (enfant A à gauche de l'enfant B) ou par rapport au parent (aligné sur le haut du parent). Il est basé sur la relation des 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, reportez-vous à ce lien: http://developer.android.com/guide/topics/ui/layout-objects.html

Raghvendra Tolia
la source
4

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 enfants se chevauchent. FrameLayout prend la taille du plus grand élément enfant.

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

Tulsi
la source
2

Excellente 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: alignez ceci sur le bord gauche du parent, placez-le à gauche / droite de cet élément, etc.

AbsoluteLayout est pour le positionnement absolu, c'est-à-dire que vous pouvez spécifier les coordonnées exactes où la vue doit aller.

FrameLayout permet le placement des vues le long de l'axe Z. Cela signifie que vous pouvez empiler vos éléments de vue les uns au-dessus des autres.

taha027
la source