iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
Mobile Development

從開發瀏覽器 APP 學習 Android 實戰技巧,並搭上 Jetpack Compose 的列車系列 第 17

[Day17] 從開發瀏覽器 APP 學習實戰技巧 -- Compose 功能選單

  • 分享至 

  • xImage
  •  

完成快速切換設定畫面後,再來處理的是充滿各種功能的選單畫面。

https://ithelp.ithome.com.tw/upload/images/20220920/20140260a5oN617gmn.png

當初在用 xml 撰寫這個畫面時,一直覺得很厭世。每個功能都要先用 LinearLayout 包一張圖,一個字串,然後再塞到對應的 Horizontal LinearLayout 中。再加上每個元件都要設定寬高大小,整個 xml 常常要複製貼上一大段 code。

換成 Jetpack Compose 就好做多了。可以先利用 Preview 把單一 Item 的樣子寫好(如下):

https://ithelp.ithome.com.tw/upload/images/20220920/20140260WHJGXGIc0P.png

實作如下。(其實看起來跟 FastToggleItem 長得差不多)

https://ithelp.ithome.com.tw/upload/images/20220920/20140260nvJv4TNq8N.png

確定外觀沒錯後,就能再把外圈的 layout 構建出來。

https://ithelp.ithome.com.tw/upload/images/20220930/20140260dIvZD95c9r.png

由於我不想要在 DialogFragment 中實作每個按鈕的動作,所以我在這裡定義了 MenuItemType,當某個按鈕被點擊時,我會將這資訊帶給呼叫的人,並告知這是哪種 Type,這麼一來,外面的人就知道可以怎麼處理這情形。

要讓程式看起來更乾淨的話,其實可以將 MenuItem title 和 icon resource id 都塞到 enum type 中,這樣子 MenuItem 就可以只塞 MenuItemType 就好。

相關連結

commit


上一篇
[Day16] 從開發瀏覽器 APP 學習實戰技巧 -- Compose 快速切換設定的對話框
下一篇
[Day18] 從開發瀏覽器 APP 學習實戰技巧 -- Compose 設定畫面的第一層
系列文
從開發瀏覽器 APP 學習 Android 實戰技巧,並搭上 Jetpack Compose 的列車31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言