web-dev-qa-db-fra.com

Android: l'icône du bouton flottant n'est pas centrée

J'essaie de créer un bouton flottant dans mon application. Le bouton est là, mais l'image dans le bouton est un peu vers le haut (voir image).

enter image description here

Je ne peux pas comprendre ce qui ne va pas. Ci-dessous fait partie du bouton XML pour flottant.

<Android.support.design.widget.FloatingActionButton
        Android:id="@+id/buttonUp"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginRight="16dp"
        Android:layout_marginTop="480dp"
        Android:clickable="true"
        Android:scaleType="center"
        Android:src="@drawable/btn_back_to_top_3x"
        app:layout_anchor="@id/layout"
        app:layout_anchorGravity="bottom|right|end"
        app:backgroundTint="@Android:color/background_light"
        app:fabSize="normal" />

Le bouton montre où je le voulais. Le seul problème semble être que l'image à l'intérieur n'est pas centrée. Pourquoi cela arrive-t-il?

[~ # ~] modifier [~ # ~] : Après un peu plus de recherche, je me suis rendu compte que l'image elle-même avait un problème là où l'image n'est pas réellement centré et il y a de l'espace en bas (ce qui fait que l'image est poussée vers le haut).

23
rabbit87

J'ai rencontré le même problème. la solution suivante a fonctionné pour moi

app:fabCustomSize="40dp"
61
Mehatab

Vous devez définir la valeur fabCustomSize comme FAB exactement la taille:

<Android.support.design.widget.FloatingActionButton
        Android:layout_width="60dp"
        Android:layout_height="60dp"
        app:fabCustomSize="60dp"
        Android:src="@drawable/plus_icon"
        app:rippleColor="@color/colorPrimaryDark" />
20
Gabriel

Essayez de faire pour fixer votre hauteur et votre largeur ...

    Android:layout_width="50dp"
    Android:layout_height="50dp"

et s'il vous plaît ajuster votre mise en page en bas d'une autre manière .. parce que ici vous faites

 Android:layout_marginTop="480dp" 

ce n'est pas une manière appropriée ma suggestion essayez de définir votre FloatingActionButton à l'intérieur de la disposition relative .. et de définir comme cette propriété ..

    Android:layout_alignParentBottom="true"
    Android:layout_alignParentRight="true"
    Android:layout_alignParentEnd="true"
0
Dileep Patel

La meilleure solution n'est pas de coder en dur la dimension du FAB.

L'icône sera centrée avec l'attribut Android:scaleType="center"

<Android.support.design.widget.FloatingActionButton
                Android:id="@+id/search_fab"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:scaleType="center"
                Android:layout_marginEnd="10dp"
                Android:src="@drawable/fab_search_icon"
                app:backgroundTint="@color/colorPrimary"
                app:elevation="4dp"
                app:fabSize="normal"/>
0
Napolean

Utilisez ( https://github.com/futuresimple/Android-floating-action-button ) et définissez fab: fab_icon = "@ drawable/ic_fab_star" pour centrer l'icône

0
WillOliveira