[Android] SwipeRefreshLayout - Google的Pull-To-Refresh下拉更新套件

當手機APP上的資料需要被動更新時,目前的標準作法,是採用下拉更新的方式。就是由用戶的手指按住螢幕,向下滑動後放開。這個動作一般稱為 Pull To Refresh,有著形隨功能(Forms Follow Function) 的設計美學。

在 iOS 也有下拉更新的功能,但並非蘋果原創,目前是 Twitter 擁有這項專利。個人認為下拉更新是UX非常突破性的設計,記得在 2007 年左右,Android 當時是 1.6 版,UI 介面沒有像現在那沒多樣化,當時不知道是哪位工程師異想天開,在 APP 上做出了搖動更新的功能,就是借由搖動手機來更新資料。當時這樣的功能是滿有創意的,好多 APP 跟著倣效,所以那陣子時常看到在捷運上有人不斷晃動自己的手機,現在想起當時的情景,覺得還滿蠢的。

這篇要介紹的是Google官方的下拉更新套件 SwipeRefreshLayout,在 Google 還沒推出自家的下拉更新套件之前,GitHub 上已有很多第三方的下拉更新套件,不過大部分都已經不再維護了,因此這裡建議使用 Google 官方的 SwipeRefreshLayout。

要實作 SwipeRefreshLayout,需要引入 Android support v4 函式庫,函式庫的版本升级到 19.1 以上。下面是 Layout 的範例,在需要更新的控件最外層加上 SwipeRefreshLayout,然候它的child必須是可以滾動的view,例如ScrollView或者ListView。
Activity class必須實作(implements) SwipeRefreshLayout.OnRefreshListener
第10行的 setColorScheme 用來設置更新時 progress circle 的顏色,最多可設定四種顏色,多種顏色會循環播放。

還要覆寫 onRefresh 方法,將更新時要執行的程式寫在第22行。
第25行的數字,則表示下拉後延遲多久更新(單位是微秒)。 這是最後實作出來的效果,和Google Inbox的下拉更新一樣。


相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

Mac與Android裝置傳輸檔案的方法

使用 Vysor 在電腦上控制 Android 裝置