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自带的功能实现下拉刷新。
可能没有实现整体的页面向下滑动的效果感觉有点不太给力,但是至少效果还是比较好看的,而且占用的内存也少,不太容易出现卡顿问题,适配起来也简单,还是比较好用的。