图标未在 FloatingActionButton 的中心对齐

Posted

技术标签:

【中文标题】图标未在 FloatingActionButton 的中心对齐【英文标题】:Icon not aligning in the center of FloatingActionButton 【发布时间】:2021-12-06 10:27:51 【问题描述】:

我正在为我的音乐播放器应用程序设计此活动。我有三个浮动操作按钮来执行 PlayNextPrevious strong> 动作。

但是,我希望“下一个”和“上一个”按钮比“播放”按钮略小。为此,我调整了此活动的 xml 文件中两个按钮的高度和宽度。

<!-- Prev. Button -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:layout_
    android:layout_
    android:id="@+id/id_prev"
    android:layout_centerVertical="true"
    android:layout_marginEnd="22dp"
    android:layout_toStartOf="@+id/play_pause"
    android:src="@drawable/ic_skip_previous"/>    

<!-- Play. Button -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:layout_
    android:layout_
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:focusable="true"
    android:clickable="true"
    android:id="@+id/play_pause"
    android:src="@drawable/ic_play"/>

<!-- Next. Button -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/id_next"
    android:layout_
    android:layout_
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_marginStart="22dp"
    android:layout_toEndOf="@+id/play_pause"
    android:clickable="true"
    android:focusable="true"
    android:src="@drawable/ic_skip_next" /> 

我面临的问题是,每次我将浮动操作按钮的高度和宽度更改为 45dp 或任何其他大小时,按钮内的图标都会被推到右下角。下一张图片显示了我在说什么。

如何让浮动操作按钮内的 NextPrev 图标完美地停留在居中并仍将两个按钮的大小保持在 45dp?

【问题讨论】:

【参考方案1】:

您应该添加 fabSize="mini" 属性,而不是将 45dp 设置为 layout_widthlayout_height 而不是 wrap_content

<!-- Prev. Button -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:layout_
    android:layout_
    android:id="@+id/id_prev"
    android:layout_centerVertical="true"
    android:layout_marginEnd="22dp"
    android:layout_toStartOf="@+id/play_pause"
    android:src="@drawable/ic_skip_previous"
    app:fabSize="mini" />    

【讨论】:

【参考方案2】:

您可以改用 scale 属性...

android:scaleX="0.9"

android:scaleY="0.9"

或者在java中......

使用setScaleXsetScaleY 属性...

【讨论】:

这也产生了我想要的结果,谢谢你分享这个答案。

以上是关于图标未在 FloatingActionButton 的中心对齐的主要内容,如果未能解决你的问题,请参考以下文章

Flutter创建圆圈图标按钮

AndroidStudio编程,如何把圆形ProgressBar的中心位置和FloatingActionButton的中心位置进行绑定?

android:从代码动态更改FAB(浮动操作按钮)图标

如何在 KivyMD 中更改 FloatingActionButton 的大小?

某些图标未在某些 android 设备中显示

.ico 图标未在 Windows 上显示