1. 程式人生 > >下拉刷新 SwipeRefreshLayout

下拉刷新 SwipeRefreshLayout

string tar except data color dex read mar pub

把想要實現下拉刷新的控件放在SwipeRefreshLayout中,就可以直接支持下拉刷新

 <android.support.v4.widget.SwipeRefreshLayout
            android:id="@+id/swipe_refresh"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout>

雖然控件已經支持下拉刷新了,但是還要去處理具體邏輯

//下拉刷新
         SwipeRefreshLayout mSwipeRefreshLayout;
      找到SwipeRefreshLayout 布局 mSwipeRefreshLayout
= (SwipeRefreshLayout) findViewById(R.id.swipe_refresh);
      設置進度條的顏色 mSwipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary);
      設置下拉刷新的監聽事件。 mSwipeRefreshLayout.setOnRefreshListener(
new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { refreshFruits(); } });


private void refreshFruits() {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);讓線程休眠兩秒因為本地刷新太快,用戶感覺不到
} catch (InterruptedException e) {
e.printStackTrace();
}
      在主線程中改變數據
runOnUiThread(new Runnable() {
@Override
public void run() {
initFruits();//生成新的數據
adpapter.notifyDataSetChanged();//通知數據刷新
mSwipeRefreshLayout.setRefreshing(false);//刷新結束,並且隱藏刷新進度條
}
});
}
}).start();
}
 

下拉刷新 SwipeRefreshLayout