FrameLayout est conçu pour contenir un objet enfant. Par exemple, avoir une vue de recyclage à l'intérieur d'un FrameLayout mais rien d'autre.
CoordinatorLayout est une version améliorée de FrameLayout. Principalement utilisé pour améliorer les performances de l'objet enfant. Par exemple, disons que nous avons un ListView et je veux changer le comportement de défilement quand une interaction utilisateur se produit. Je peux utiliser CoordinatorLayout dans ce cas pour que ListView se comporte comme je le souhaite.
LinearLayout est conçu pour aligner les objets enfants dans une direction c'est-à-dire horizontalement ou verticalement. Par exemple, si j'ai un TextView, un ImageView et un EditText et que je veux qu'ils soient dans une ligne, alors je peux utiliser LinearLayout avec une orientation horizontale pour le faire.
RelativeLayout est un peu plus complexe que les deux ci-dessus mais a beaucoup plus de capacités. RelativeLayout est conçu pour aligner l'objet enfant par rapport à la position du parent ou d'un autre objet enfant. Par exemple, de nos jours, nous avons généralement un bouton à la fin de l'écran sur le côté droit, les façons dont cela est fait nous créons un RelativeLayout comme parent et ensuite un bouton à l'intérieur avec les paramètres alignParentBotton et alignParentRight = True.
ConstraintLayout est une version mise à jour de RelativeLayout c'est-à-dire fournissant beaucoup plus de paramètres que RelativeLayout et des fonctionnalités améliorées.