今天來介紹RecyclerView、ListView 或 ScrollView的幫手(應該算吧ww
スタート! ( .ω. ゞ )
SwipeRefreshLayout 是Android Jetpack 套件中的一個UI 元件,讓使用者可以透過向下滑動的手勢來觸發內容的更新,例如:刷新社群媒體的動態、重新載入新聞列表、或更新天氣資訊等
這個元件直接繼承自ViewGroup,它可以作為容器,包覆住你想要提供下拉刷新功能的View
確認build.gradle(Module: app)檔案中加入SwipeRefreshLayout的依賴
dependencies {
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0"//or 最新版
}
將你想要提供下拉刷新功能的 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)
如果忘記了,那個轉圈的進度指示器會永遠卡在畫面上改顏色
用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,祝各位中秋節快樂tomorrow see