iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0
Mobile Development

Jetpack Compose 輕易入門 :無障礙的開箱即用系列 第 5

5. XML to Compose:初探Compose,掙脫樣板代碼的詛咒,這也太香了吧

  • 分享至 

  • xImage
  •  

還記得第一次寫Android的時光嗎?
光是寫個按鈕就超級麻煩的對吧

(話說這張圖讓我找好久 XD

先在XML上加個button
再幫button訂個ID
回到Activity,宣告 button 物件
在onCreat()裡 findViewById(),接著幫 button.setOcClickListener(this)
最後則是最看不懂的部分點擊監聽
先把 class MainActivity implements OnClickListener
再到 class 裡實現 View.OnClickListener 這個接口中的 onClick() 方法
對當時還是Java + Android新手的我真的是完全看懂啊
而且,這還只是其中一種寫法
光是這個點擊監聽,實現的方法少說就有4、5種
對新手來說真的是有夠恐怖的

後來有了ViewBinding + DataBinding
讓我們只要經過「一點」前置作業
就能從這一大串樣板代碼中解放
但前提還是要先寫幾個 ViewModel 和 ViewBinding 的樣板代碼
所以只是從每個控件寫一次,變成些以兩三個
的確輕鬆了不少,但這些樣板代碼還是存在

所以,歡迎來到 Jetpack Compose!
我們將從這些重複勞動裡解放
可以更專注於業務邏輯和特色功能的開發
剛剛說的動則幾十行的Code
現在只要加上一行就好
還記得上次的按鈕嗎?

Button(onClick = { num++ }) {  // 按鈕 {點擊事件 num++}
    Text(text = "+1")  //  裡面顯示 "+1"
}

想要加上點擊事件?簡單!
把你的 function 放進 onClick = { /* 你的function */ } 就好了!
什麼都不用做!

但這是 button 的用法
不是每個 Compose組件都有這個 onClick lambda 參數
不過Compose給了我們很高的自由度
只要再你想要的Compose組件加上 Modifier.clickable { /* 你的function */ } 就可以了!
那我們把 Button 換成 Text 的話就會是這樣

Text(text = "Button", Modifier.clickable { /* your function */ })  

也只要一行就好了
有沒有感覺到Compose的魅力啦!

不過我們這邊談到沒看過的東西,Modifier
這個Modifier是什麼呢?
我們下次就來介紹吧

參考資料:
https://blog.csdn.net/salmon_zhang/article/details/71432324
https://blog-1256739480.cos.ap-guangzhou.myqcloud.com/20190706123408.gif


上一篇
4. Compose簡介: 文檔、相容性與版本等等注意事項
下一篇
6. XML to Compose:Compose裡的XML屬性,修飾符Modifier
系列文
Jetpack Compose 輕易入門 :無障礙的開箱即用8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言