web-dev-qa-db-fra.com

Icône du bouton d'action flottante non centrée à l'intérieur

J'essaie d'utiliser un FAB mais l'icône à l'intérieur se situe en bas à droite du bouton:

FAB avec l'icône non centrée

Ceci est la définition de FAB dans le XML:

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

        <com.google.Android.material.floatingactionbutton.FloatingActionButton
            Android:id="@+id/centerLocationButton"
            style="@style/Widget.MaterialComponents.FloatingActionButton"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentEnd="true"
            Android:layout_alignParentRight="true"
            Android:layout_margin="@dimen/pro_arriving_map_location_button_padding"
            Android:src="@drawable/ic_my_location"
            app:backgroundTint="@color/white"
            app:fabSize="mini" />

    </RelativeLayout>

Qu'est-ce que je fais mal?

5

Ma solution est app:fabCustomSize="56dp"

2
std.denis

Cela semble être un bogue dans Design Support Library v28.0.0. 

Je pourrais résoudre ce problème en définissant le scaleType par programme.

Dans votre cas dans le code Java/Kotlin:

centerLocationButton.setScaleType(ImageView.ScaleType.CENTER)
1
Gorac

Après la mise à jour vers le SDK 28, j'ai le même problème. Changer la taille, scaleType, layout_gravity, etc. retournera la même chose.

Ma solution actuelle à court terme utilise ImageButton.

0
Wahyu Anggara Raya

Au lieu de Android:src, essayez app:srcCompat. FAB est la seule chose que vous utilisez, parce que si c'est (à en juger par la photo que vous avez postée), peut-être que vous n'avez pas besoin de RelativeLayout en tant que parent, vous pouvez utiliser Android:layout_gravity="bottom|end"

0
Nemanja