浮动操作按钮图标不在内部居中

时间:2018-10-03 20:31:23

标签: android material-design

我正在尝试使用FAB,但是其中的图标位于按钮的右下角:

FAB with icon not centered

这是xml中的FAB定义:

<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>

我在做什么错了?

9 个答案:

答案 0 :(得分:2)

这似乎是设计支持库v28.0.0中的错误。

我可以通过编程设置scaleType来解决这个问题。

在您的情况下,使用Java / Kotlin代码:

centerLocationButton.setScaleType(ImageView.ScaleType.CENTER)

答案 1 :(得分:2)

我的解决方法是app:fabCustomSize="56dp"

答案 2 :(得分:1)

在我的情况下,可以运行此解决方案 MySQL said: Documentation Cannot connect: invalid settings. mysqli_real_connect(): (HY000/1130): Host 'localhost' is not allowed to connect to this MariaDB server Connection for controluser as defined in your configuration failed. mysqli_real_connect(): (HY000/1130): Host 'localhost' is not allowed to connect to this MariaDB server phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server. enter image description here Database user does not have enough privileges. Please make sure SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER privileges are granted to database 'magento2'. enter image description here

您可以添加 app:fab_icon="@drawable/btn_back_to_top_3x"

其他变化

答案 3 :(得分:1)

如果您使用的是材料设计并使用自定义尺寸:

nbonacci[i] = nbonacci[i - 1] + nbonacci[i - 1] - nbonacci[i - N - 1]

代替

android:layout_width="80dp"
android:layout_height="80dp"

解决方法是使用这两个属性

android:layout_width="wrap_content"
android:layout_height="wrap_content"

确保这一点

app:fabCustomSize="80dp"
app:maxImageSize="70dp"

答案 4 :(得分:0)

尝试使用xchg而不是android:src。 FAB只是您正在使用的东西,因为(根据您发布的图片判断)FAB,也许您不需要RelativeLayout作为父项,则可以使用app:srcCompat

答案 5 :(得分:0)

更新到SDK 28之后,我遇到了同样的问题。更改大小,scaleType,layout_gravity等将返回相同的结果。

我当前的短期解决方案是使用ImageButton。

答案 6 :(得分:0)

请尝试给出的解决方案。它对我有用。

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:layout_gravity="end|bottom"
        android:layout_margin="10dp"
        android:backgroundTint="@color/white"
        android:contentDescription="Chat"
        app:fabCustomSize="75dp"
        android:src="@drawable/chat"
        app:borderWidth="1dp"
        app:useCompatPadding="true" />

答案 7 :(得分:-1)

您可以尝试将android:scaleType="center"作为FloatingActionButton属性吗?

答案 8 :(得分:-1)

尝试

android:width="wrap_content"
android:height="wrap_content"
app:maxImageSize ="56dp"
晶圆厂上的

。为我工作