web-dev-qa-db-fra.com

Que fait FrameLayout?

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?

60
Amin Ghasemi

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:

enter image description here

122
ojonugwa ochalifu

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.

enter image description here

Une autre approche populaire consistant à utiliser FrameLayout c'est Fragment conteneur

Lire la suite ici

29
yoAlex5

Ê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.

19
Metehan

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.

19
Asif Mushtaq

Fondamentalement, il place une vue sur une autre, par exemple:

Gonfler du texte sur l'image

  <FrameLayout>

<ImageView>
<Textview>

  </FrameLayout>
5
KOTIOS