问题
I'm trying to use a FAB but the icon inside is placing at bottom right of the button:
FAB with icon not centered
This is the FAB definition in the 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>
What am I doing wrong?
回答1:
This seems to be a bug in the Design Support Library v28.0.0.
I could workarround this by setting the scaleType programmatically.
In your case in the Java/Kotlin Code:
centerLocationButton.setScaleType(ImageView.ScaleType.CENTER)
回答2:
My solution is app:fabCustomSize="56dp"
回答3:
In my situation run ok this solution
app:fab_icon="@drawable/btn_back_to_top_3x"
enter image description here
not
android:src="@drawable/btn_back_to_top_3x
enter image description here
And you can add
android:scaleY="1.X"
android:scaleX="1.X"
for additional variation
回答4:
Instead of android:src try app:srcCompat. Is FAB only thing you are using, because if it is (judging by the pic you posted), maybe you don't need RelativeLayout as a parent, you can use android:layout_gravity="bottom|end"
回答5:
After updating to SDK 28, I've got the same problem. Changing the size, scaleType, layout_gravity, etc will return the same.
My current short-term solution is using the ImageButton.
回答6:
Could you try with android:scaleType="center" as a FloatingActionButton property?
回答7:
Try
android:width="wrap_content"
android:height="wrap_content"
app:maxImageSize ="56dp"
on the fab. Worked for me
来源:https://stackoverflow.com/questions/52635233/floating-action-button-icon-not-centered-inside