J'essaye donc d'aligner deux FloatingActionButton s dans un LinearLayout à l'intérieur d'un RelativeLayout. Quelque chose comme ça:

<LinearLayout>
    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/submitBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/DeleteBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

Mais je veux qu'ils se comportent comme n'importe quel autre élément comme un TextView lorsque vous les mettez dans un LinearLayout. Je veux dire que je veux qu'ils prennent chacun la moitié de la largeur du LinearLayout. Mais ils resteraient au début du LinearLayout et ils ne bougeraient pas quoi que j'essaye.

J'ai essayé d'utiliser android:layout_width="1" sur chacun d'eux mais pas de chance, ils ne bougeront pas du tout, ils sont juste collés ensemble au début du LinearLayout.

Voici à quoi ça ressemble:

It looks like this

Je serais si heureux s'il y a des suggestions! Merci d'avance.

1
AmirMahdi K 19 mai 2020 à 13:31

5 réponses

Meilleure réponse

Une façon d'y parvenir est comme ça ...

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2">

    <FrameLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/submitBtn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            app:srcCompat="@drawable/ic_add_black_24dp" />

    </FrameLayout>

    <FrameLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1">

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/deleteButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            app:srcCompat="@drawable/ic_delete_forever_black_24dp" />

    </FrameLayout>

</LinearLayout>

Cela ressemblera à quelque chose comme ceci .... entrez la description de l'image ici

Vous pouvez jouer avec layout_gravity pour les aligner comme vous le souhaitez ...

1
PraveenSP 19 mai 2020 à 10:46

Avec quelques mathématiques simples, vous pourriez avoir l'alignement parfait avec ce code, il suffit de copier-coller:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="5">

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/submitBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" />

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/DeleteBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" />

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">

    </RelativeLayout>

</LinearLayout>

Centré exactement sans grand écart au centre:

enter image description here

1
F.Mysir 19 mai 2020 à 11:04

Dans LinearLayout, vous pouvez définir layout_weight = 1 pour partager le parent:

 <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/submitBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
0
mohosyny 19 mai 2020 à 10:43
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:orientation="horizontal">
        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/submitBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/DeleteBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
</LinearLayout>
0
MMG 19 mai 2020 à 10:42

Veuillez utiliser ci-dessous ce code XML

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="2"
    >
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
       >
        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/submitBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="right"
        android:gravity="right"
        >
        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/DeleteBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>
1
Kabilan 19 mai 2020 à 10:43