web-dev-qa-db-fra.com

Android: bouton Aligner sur le coin inférieur droit de l'écran avec FrameLayout?

J'essaie de placer les commandes de zoom de la carte dans le coin inférieur droit de l'écran. Je pourrais le faire avec RelativeLayout en utilisant les deux alignParentBottom="true" et alignParentRight="true", mais avec Framelayout, je n’ai pas trouvé de tels attributs. Comment l'aligner sur le coin inférieur droit de l'écran?

101

En fait, c'est possible, malgré ce qui est dit dans d'autres réponses. Si vous avez un FrameLayout et que vous voulez positionner un élément enfant en bas, vous pouvez utiliser Android:layout_gravity="bottom" et cela va aligner cet enfant au bas de la FrameLayout.

Je sais que cela fonctionne parce que je l'utilise. Je sais que c'est en retard, mais cela pourrait être utile pour d'autres, puisque cela occupe les premières positions sur Google.

238
lblasa

J'ai également rencontré cette situation et compris comment le faire à l'aide de FrameLayout. La sortie suivante est produite par le code donné ci-dessous.

Some right-bottom aligned text showing up over an image using FrameLayout.

              <FrameLayout
                    Android:layout_width="match_parent"
                    Android:layout_height="wrap_content" >

                    <ImageView
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:src="@drawable/contactbook_icon"
                        Android:layout_gravity="center" />

                    <TextView
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:text="140"
                        Android:textSize="12dp"
                        Android:textColor="#FFFFFF"
                        Android:layout_gravity="bottom|right"
                        Android:layout_margin="15dp" />
                </FrameLayout>

Modifiez la valeur de la marge pour ajuster la position du texte sur l'image. Si vous supprimez la marge, le texte risque parfois de sortir de la vue.

46
JaydeepW

Cela peut être réalisé en utilisant RelativeLayout

<RelativeLayout 
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent">

   <ImageView 
      Android:src="@drawable/icon"
      Android:layout_height="wrap_content"
      Android:layout_width="wrap_content"
      Android:layout_alignParentRight="true"
      Android:layout_alignParentBottom="true" />

</RelativeLayout>
36
Rohith Nandakumar

Réglage Android:layout_gravity="bottom|right" a travaillé pour moi

15
Jakob

Deux façons de faire ceci:

1) Utiliser une structure de cadre

Android:layout_gravity="bottom|right"

2) Utiliser une mise en page relative

Android:layout_alignParentRight="true"
Android:layout_alignParentBottom="true" 
9
Jorgesys
Android:layout_gravity="bottom"
4
superarts.org

Si vous voulez essayer avec Java code. Ici vous allez -

    final LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, 
                                             LayoutParams.WRAP_CONTENT);
    yourView.setLayoutParams(params);
    params.gravity = Gravity.BOTTOM; // set gravity
3
Rahul

vous pouvez ajouter un TextView invisible à FrameLayout.

    <TextView
        Android:layout_width="wrap_content"
        Android:layout_height="0dp"
        Android:layout_weight="1"
        Android:visibility="invisible"
        />

    <LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="50dp"
        Android:orientation="horizontal">
        <Button
            Android:id="@+id/daily_delete_btn"
            Android:layout_width="0dp"
            Android:layout_height="50dp"
            Android:layout_weight="1"
            Android:text="DELETE"
            Android:layout_gravity="center"/>
        <Button
            Android:id="@+id/daily_save_btn"
            Android:layout_width="0dp"
            Android:layout_height="50dp"
            Android:layout_weight="1"
            Android:text="SAVE"
            Android:layout_gravity="center"/>
    </LinearLayout>
2
ximoed