Je suis nouveau en programmation. J'utilisais Graphical Layout puis, lorsque je lisais un fichier xml, j'ai vu FrameLayout. Puis j'ai cherché, mais je n'ai pas trouvé quelque chose d'utile. Qu'est-ce que FrameLayout et que fait-il?
Vous utilisez un FrameLayout pour empiler des vues enfant les unes sur les autres, avec l'enfant le plus récent au-dessus de la pile. Dans l'exemple ci-dessous, le TextView étant le plus récent, il est automatiquement placé au-dessus du ImageView.
Par exemple:
<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<ImageView
Android:id="@+id/backgroundImage"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:scaleType="centerCrop"
Android:src="@drawable/bitmapie" />
<TextView
Android:id="@+id/descTextView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_vertical"
Android:layout_marginTop="70dp"
Android:background="@Android:color/holo_blue_light"
Android:padding="10dp"
Android:text="TextView placed at the top of the Imageview"
Android:textColor="@Android:color/white"
Android:textSize="22sp" />
</FrameLayout>
Sortie:
FrameLayout
est conçu pour bloquer une zone de l'écran pour afficher un seul élément. En règle générale, FrameLayout
devrait être utilisé pour gérer une vue enfant unique, car il peut être difficile d’organiser les vues enfants de manière à ce qu’elles soient modifiables en 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 le FrameLayout
en affectant la gravité à chaque enfant, en utilisant le Android:layout_gravity
attribut.
Les vues enfant sont dessinées dans une pile, avec le dernier enfant ajouté en haut.
Une autre approche populaire consistant à utiliser FrameLayout
c'est Fragment
conteneur
Lire la suite ici
Êtes-vous sûr de l'avoir googlé?
La disposition du cadre est conçue 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 ce dernier en attribuant la gravité à chaque enfant, à l'aide de l'attribut Android: layout_gravity.
Le secret de FrameLayout réside dans la disposition de ses enfants. Bien qu'il soit normalement conçu pour contenir un élément, il empilera volontiers les autres éléments les uns sur les autres. Ainsi, FrameLayout est essentiellement un moyen de manipuler l’ordre Z des vues à l’écran.
Ceci est très utile pour quelques astuces d’interface utilisateur allant d’éléments de type HUD à des panneaux glissants à des transitions animées plus complexes. Dans cet article, nous verrons un exemple pour chacun de ceux-ci.
FrameLayout est conçu pour afficher un seul élément à la fois. Vous pouvez avoir plusieurs éléments dans un FrameLayout mais chaque élément sera positionné en haut à gauche de l'écran. Les éléments qui se chevauchent seront affichés en chevauchement. J'ai créé une mise en page XML simple à l'aide de FrameLayout qui montre comment cela fonctionne.
Vous pouvez considérer le mot frame
comme un cadre photo normal. Qu'est-ce que vous faites avec ce cadre? vous pouvez placer les photos dans ce cadre, de haut en bas. Comme dans FrameLayout
, nous pouvons placer les vues (n'importe quelle disposition ou widget, comme un bouton, un texte, une image, etc.) au-dessus d'une autre comme @ ojonugwa vous montre la vue en haut de l'image.
Fondamentalement, il place une vue sur une autre, par exemple:
Gonfler du texte sur l'image
<FrameLayout>
<ImageView>
<Textview>
</FrameLayout>