web-dev-qa-db-fra.com

Bouton d'action flottante pour aligner le bas

Je veux aligner en bas à droite mon FAB.

  1. J'ai essayé avec Android:gravity="bottom|right"
  2. Quand j'essaie Android:layout_alignParentBottom="true "FAB disparaît
  3. Quand j'essaie Android:layout_alignBottom="@id/lista_tiendas"FAB disparaît

Cela ne semble pas compliqué mais je ne peux tout simplement pas y arriver

Des idées?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent">

<ListView
    Android:id="@+id/lista_tiendas"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_margin="5dp"
    Android:divider="@Android:color/transparent"
    Android:dividerHeight="4.0sp"/>

<Android.support.design.widget.FloatingActionButton
    Android:id="@+id/fab"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:src="@drawable/ic_add_white_48dp"
    app:backgroundTint="@color/spg_rosa"
    app:borderWidth="0dp"
    app:elevation="8dp"
    app:fabSize="normal"
    Android:layout_alignParentRight="true"
    Android:layout_alignParentBottom="@id/lista_tiendas"
     />
</RelativeLayout>
43
Juliatzin del Toro

Pour RelativeLayout:

<Android.support.design.widget.FloatingActionButton
    Android:id="@+id/fab"
    Android:layout_alignParentBottom="true"
    Android:layout_alignParentRight="true"
    ... />

Pour CoordinatorLayout, vous devriez utiliser Android:layout_gravity="end|bottom"


Pour ConstraintLayout:

<Android.support.design.widget.FloatingActionButton
    Android:id="@+id/fab"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    ... />

Voir cette réponse pour plus d'informations.

130
Anggrayudi H

La mise en page doit être RelativeLayout. Essayez le code suivant:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent">

<LinearLayout
    Android:id="@+id/ly_list_form"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:orientation="vertical">


    <ListView
        Android:id="@+id/list_forms"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:dividerHeight="1dp" />

</LinearLayout>

<LinearLayout
    Android:id="@+id/ly_bar_bottom"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:gravity="right"
    Android:orientation="horizontal">

    <Android.support.design.widget.FloatingActionButton
        Android:id="@+id/button_addc"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="bottom|end"
        Android:layout_margin="28dp"
        Android:src="@drawable/ic_add"
        app:borderWidth="0dp"
        app:elevation="6dp"
        app:pressedTranslationZ="12dp" />
</LinearLayout>
11
Diego

Il semble que FloatingActionButton ne soit pas correctement positionné dans un RelativeLayout.

J'ai changé RelativeLayout en FrameLayout et le problème a été résolu! J'espère que ça aide!

<ListView
    Android:id="@+id/mylist"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_margin="5dp"
    Android:divider="@Android:color/transparent"
    Android:dividerHeight="1.0sp" />

<Android.support.design.widget.FloatingActionButton
    Android:id="@+id/fab"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="right|bottom"
    Android:src="@drawable/ic_add_white_48dp"
    app:backgroundTint="@color/spg_rosa"
    app:borderWidth="0dp"
    app:elevation="8dp"
    app:fabSize="normal" />

</FrameLayout>
5
Juliatzin del Toro

J'ai réussi à faire fonctionner le code en procédant comme suit:

<Android.support.design.widget.FloatingActionButton
    Android:id="@+id/fab"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    app:backgroundTint="#ff0000"
    app:borderWidth="0dp"
    app:elevation="8dp"
    app:fabSize="normal"
    Android:layout_alignLeft="@+id/text"
    Android:layout_above="@+id/text"/>

Cependant, cela ne fonctionnait pas avec below le TextView au lieu de ci-dessus, je pense que cela pourrait être un bogue.

2
26hmkk

Essayez d'utiliser Android.support.design.widget.CoordinatorLayout et Android:layout_gravity="bottom|right" travaille pour moi.

2
naamadheya

Essayer

Android: layout_gravity = "en bas | à droite"

0