還記得第一次寫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