前言
最近在學習下拉刷新的過程中,遇到了一個需求:實現(xiàn)一個圖書館藏的首頁推薦頁奸晴,為了追求良好的用戶體驗瞎颗,要求剛進入頁面時就開始刷新婉徘,如下圖:
為了實現(xiàn)這個效果使用了SwipeRefreshLayout這個控件,接下來來說如何實現(xiàn)敬矩。
實現(xiàn)步驟
- 在布局文件中添加該控件
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/library_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>
- 在Activity中初始化這個控件
private void initSwipeRefresh() {
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.library_refresh);
// 設(shè)置顏色屬性的時候一定要注意是引用了資源文件還是直接設(shè)置16進制的顏色概行,因為都是int值容易搞混
// 設(shè)置下拉進度的背景顏色,默認就是白色的
swipeRefreshLayout.setProgressBackgroundColorSchemeResource(android.R.color.white);
// 設(shè)置下拉進度的主題顏色
swipeRefreshLayout.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary, R.color.colorPrimaryDark);
listener = new SwipeRefreshLayout.OnRefreshListener() {
public void onRefresh() {
//TODO
//在這執(zhí)行你的操作
}
};
swipeRefreshLayout.setOnRefreshListener(listener);
}
- 在activity的onCreate()方法中執(zhí)行
swipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
swipeRefreshLayout.setRefreshing(true);
}
});
listener.onRefresh(); //這句話務必執(zhí)行
通過以上的代碼即可在進入首頁時自動刷新了弧岳。
問題
那應該如何關(guān)閉這個刷新動過呢凳忙?
在需要關(guān)閉的地方執(zhí)行以下方法即可
swipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
swipeRefreshLayout.setRefreshing(false);
}
});
需要注意的地方
想要在界面一加載的時候出現(xiàn)更新效果,直接調(diào)用setRfreshing(true)是出不來效果的,務必需要在
swipeRefreshLayout.setRefreshing(true);
后添上一句
listener.onRefresh();