iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0

今天來介紹RecyclerView、ListView 或 ScrollView的幫手(應該算吧ww
スタート! ( .ω. ゞ )

SwipeRefreshLayout 是什麼?

SwipeRefreshLayout 是Android Jetpack 套件中的一個UI 元件,讓使用者可以透過向下滑動的手勢來觸發內容的更新,例如:刷新社群媒體的動態、重新載入新聞列表、或更新天氣資訊等
這個元件直接繼承自ViewGroup,它可以作為容器,包覆住你想要提供下拉刷新功能的View

加入依賴

確認build.gradle(Module: app)檔案中加入SwipeRefreshLayout的依賴

dependencies {
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0"//or 最新版
}

在XML加入SwipeRefreshLayout

將你想要提供下拉刷新功能的 View包起來

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

在Java主要就設定.setOnRefreshListener(),然後結束前呼叫swipeRefreshLayout.setRefreshing(false)基本上就設定完了:)
大概會長下面這樣

swipeRefreshLayout.setOnRefreshListener(() -> {
		//前面是資料更新邏輯之類的
		swipeRefreshLayout.setRefreshing(false);
});

注意事項

  • 停止刷新動畫:在你的資料載入邏輯完成後,要記得呼叫swipeRefreshLayout.setRefreshing(false) 如果忘記了,那個轉圈的進度指示器會永遠卡在畫面上
  • 觸發時機:只有當可滾動的View已經位於最頂端時,向下滑動才會觸發刷新
  • 如果有需要,它可以在剛進入頁面時手動觸發

客製化選項

  • 改顏色

    setColorSchemeResources()方法可以設定一種或多種顏色。如果設定多種顏色,進度指示器在旋轉時會依序循環切換這些顏色

    swipeRefreshLayout.setColorSchemeResources(
        R.color.your_color_1,
        R.color.your_color_2,
        R.color.your_color_3
    );
    //如果不想用res/values/colors.xml 裡的顏色,也可以直接用顏色代碼
    
  • 改大小

    setSize()設定,有兩種選項LARGE 或DEFAULT(預設)

    swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);
    swipeRefreshLayout.setSize(SwipeRefreshLayout.DEFAULT);
    
  • 改背景圓圈的顏色

    setProgressBackgroundColorSchemeResource() 來設定進度指示器後面那個小圓圈的背景色

    swipeRefreshLayout.setProgressBackgroundColorSchemeResource(R.color.your_color);
    //一樣可以用顏色代碼
    

SwipeRefreshLayout就先介紹到這裡,明天會來介紹SharedPreferences,祝各位中秋節快樂/images/emoticon/emoticon42.gif
tomorrow see

https://ithelp.ithome.com.tw/upload/images/20251006/201761541UK1jHezdk.png


上一篇
Day21 Fragment介紹
下一篇
Day23 SharedPreferences介紹
系列文
Android 菜鳥30天從0到1的學習紀錄24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言