Day 18 Compose Gestures II

Teng Wang
Sep 23, 2021

2021 鐵人賽 一天一腳步,30天學會 Android Compose UI!

今年的疫情蠻嚴重的,希望大家都過得安好,希望疫情快點過去,能回到一些線下技術聚會的時光~

今天目標:了解 Compose UI 上 的 Gestures 是怎麼作用的。

今天要研究的部分也是手勢,會講解拖與多點觸控的實作。

拖移

DragDemo 可以左右移動、DragBoxDemo 則可以上下左右移動

可以看到 offsetX 就是記錄這個 UI 元件的 x 軸變數, DragBox 的 offsetY則是 y 軸的變數,然後在使用者觸發 draggable 與 pointerInput 的函式中去不斷的更新 這兩個數值,就完成了拖移的功能。

swipe

常見的固定左右滑動 Compose UI也有

宣告完就可以左右滑動,也是很方便的元件

但是一樣是實驗性功能,使用上要考慮未來API修改的可能性。

多點觸控

手勢的最後是多點觸控,包括了Panning, zooming, rotating。

只要按照參考資料的程式碼貼上去後就能看到這個 Demo了,可以透過兩個以上觸碰點位的距離變化完成旋轉,放大縮小、跟位移。

研究到這邊的時候,我覺得 Compose UI 真的幫忙處理掉了許多以前自己寫 Android的 Touch Event的困難點,覺得以後實作這些功能,初期應該會容易很多。

不過比較客製化的 UI,大概還是要開發者自己想辦法處理囉:)

今天研究完了手勢實作的部分,都會的話就明天見囉:)

參考資料:https://developer.android.com/jetpack/compose/gestures

本文同步發表在 iT邦幫忙 上 文章連結

--

--