iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
Mobile Development

Kotlin 實踐 Material Design 懶人包系列 第 11

Day 11 使用 M3 的 Extended Floating Action Button(下)

  • 分享至 

  • xImage
  •  

延續上一篇 Floating Action Buttons (上)

在上一篇FAB提到的icon必須清晰易懂,因為按鈕沒有文字描述,Extended FABs可以包括一個文字和icon。

但特別注意是ExtendedFloatingActionButton是屬於 MaterialButton的子類別,並非Floating Action Button的子類別,所以使用上會有些許不一樣。

例如在設定圖片時FloatingActionButton 使用app:srcCompat,然而ExtendedFloatingActionButton使用app:icon

https://ithelp.ithome.com.tw/upload/images/20220922/20144469t4vYF2vIpZ.png

從按鈕實作角度探討

https://ithelp.ithome.com.tw/upload/images/20220922/201444693kjTVQdW4Y.png

<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">

    <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
        android:id="@+id/floating_action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="16dp"
        android:text="捷運"
        app:icon="@drawable/ic_railway_24"/>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

相同性主題 FABs

https://ithelp.ithome.com.tw/upload/images/20220922/20144469ilyMHdSXrx.png
res/values/theme.xml 新增指定style

在新增的ExtendedFloatingActionButton、FloatingActionButton,兩個分別的 parent 指定預設 style ,在透過 materialThemeOverlay取得新增指定style的內容,這樣ExtendedFAB、FAB的樣式主題就會相同

**指定style**
<style name="ThemeOverlay.App.FloatingActionButton" parent="">
        <item name="colorContainer">@color/purple_200</item>  --> 背景色
        <item name="colorOnContainer">@color/purple_700</item> --> 文字顏色
</style>

**ExtendedFloatingActionButton** 
<style name="Widget.App.ExtendedFloatingActionButton" parent="Widget.Material3.ExtendedFloatingActionButton.Icon.Primary">
        <item name="materialThemeOverlay">@style/ThemeOverlay.App.FloatingActionButton</item>
</style>

**FloatingActionButton**
<style name="Widget.App.FloatingActionButton" parent="Widget.Material3.FloatingActionButton.Primary">
        <item name="materialThemeOverlay">@style/ThemeOverlay.App.FloatingActionButton</item>
</style>

Anatomy and key properties

https://ithelp.ithome.com.tw/upload/images/20220922/20144469cAYMo8abSW.png

  1. Container
  2. Text label
  3. Icon (Optional)

Container attributes、method、Default value
https://ithelp.ithome.com.tw/upload/images/20220922/20144469vPnyTGQrWT.png

Icon attributes

FloatingActionButton是不行調整icon大小,ExtendedFloatingActionButton得 icon 可以調整大小和padding
https://ithelp.ithome.com.tw/upload/images/20220922/20144469rYLJHkClHt.png

預設的Styles
https://ithelp.ithome.com.tw/upload/images/20220922/20144469MuY3QkH8bJ.png

可以透過程式碼看到預設的參數
https://ithelp.ithome.com.tw/upload/images/20220922/2014446998vbBc7hoK.png

Layout的預設畫面上每個元件的間距

https://ithelp.ithome.com.tw/upload/images/20220922/20144469K7f5HZSKDz.png

參考資料:Material Design Component Extended Floating Action Button


上一篇
Day10 使用 M3 的 Floating Action Buttons (FAB) (上)
下一篇
Day12 使用 M3 的 Bottom App Bar
系列文
Kotlin 實踐 Material Design 懶人包30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言