android當中有自帶的一款刷新效果,不需要自己重新寫,也不需要自己配置,總的來說非常好用,只不過是效果比較單調,不過比網上盛傳的那些下拉刷新僅僅是個箭頭的效果好很多。
首先先把需要刷新的xml內容用以下代碼包裹住:
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/swipe_container">
<!--添加需要刷新的內容-->
</android.support.v4.widget.SwipeRefreshLayout>
然後在邏輯代碼中實現接口也就是在implements後添加SwipeRefreshLayout.OnRefreshListener
同時定義:
private SwipeRefreshLayout mSwipeLayout;//下拉刷新
然後在佈置UI的部分中添加代碼:
//下拉刷新配置
mSwipeLayout = (SwipeRefreshLayout)view.findViewById(R.id.swipe_container);
mSwipeLayout.setOnRefreshListener(this);
// 設置下拉圓圈上的顏色,藍色、綠色、橙色
mSwipeLayout.setColorSchemeResources(android.R.color.holo_blue_bright, android.R.color.holo_green_light,
android.R.color.holo_orange_light);
mSwipeLayout.setDistanceToTriggerSync(100);// 設置手指在屏幕下拉多少距離會觸發下拉刷新
mSwipeLayout.setProgressBackgroundColorSchemeResource(R.color.dark_line);//背景顏色,需要根據整體UI風格進行更改
mSwipeLayout.setSize(SwipeRefreshLayout.LARGE);//刷新圖標大小
然後添加需要執行刷新的代碼:
//下拉刷新
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 停止刷新
mSwipeLayout.setRefreshing(false);
//添加需要刷新的內容,比如重新執行一遍佈局文件。
}
}
}, 2000); // 2秒後發送消息,停止刷新
}
這樣就可以使用android自帶的功能實現下拉刷新。
可能沒有實現整體的頁面向下滑動的效果感覺有點不太給力,但是至少效果還是比較好看的,而且佔用的內存也少,不太容易出現卡頓問題,適配起來也簡單,還是比較好用的。