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

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

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

<!-- Prev. Button -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:layout_width="45dp"
    android:layout_height="45dp"
    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_width="wrap_content"
    android:layout_height="wrap_content"
    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_width="45dp"
    android:layout_height="45dp"
    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?

【问题讨论】:

    标签: android xml android-layout floating-action-button


    【解决方案1】:

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

    <!-- Prev. Button -->
    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        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 属性...

      【讨论】:

      • 这也产生了我想要的结果,谢谢你分享这个答案。
      猜你喜欢
      • 2012-02-19
      • 2017-01-20
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 2022-11-11
      • 2019-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多