Android SwipeRefreshLayout下拉刷新组件示例
程序员文章站
2023-12-16 17:12:34
swiperefreshlayout概述
swiperefrshlayout是google官方更新的一个widget,可以实现下拉刷新的效果。该控件集成自viewgrou...
swiperefreshlayout概述
swiperefrshlayout是google官方更新的一个widget,可以实现下拉刷新的效果。该控件集成自viewgroup在support-v4兼容包下,不过我们需要升级supportlibrary的版本到19.1以上。
用户通过手势或者点击某个按钮实现内容视图的刷新,布局里加入swiperefreshlayout嵌套一个子视图如listview、 recyclerview等,触发刷新会通过onrefreshlistener的onrefresh方法回调,我们在这里执行页面数据的刷新,每次手势 的完成都会执行一次通知,根据滑动距离判断是否需要回调。setrefreshing(false)通过代码直接取消刷新,true则手动设置刷新调出刷 新视图。setenabled(false)通过boolean控制是否禁用手势刷新 。
基本使用的方法如下:
1.setonrefreshlistener(onrefreshlistener):添加下拉刷新监听器
2.setrefreshing(boolean):显示或者隐藏刷新进度条
3.isrefreshing():检查是否处于刷新状态
使用非常简单,用一个简单案例来介绍swiperefreshlayout下拉刷新的功能。
布局文件
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.swiperefreshlayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/v7_refresh" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/back"> <android.support.v7.widget.recyclerview android:id="@+id/v7_recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.swiperefreshlayout>
item.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.cardview xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/cardview" app:cardcornerradius="5dp" app:cardbackgroundcolor="@android:color/white" android:layout_margin="5dp" android:layout_height="60dp" android:layout_width="match_parent"> <textview android:id="@+id/menuitem_tv" android:layout_gravity="center" android:text="@string/app_name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </android.support.v7.widget.cardview>
activity
public class mainactivity extends appcompatactivity { private swiperefreshlayout swiperefreshlayout; private recyclerview recyclerview; private list<string> list=null; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main_activity); initview(); } private void initview() { swiperefreshlayout=(swiperefreshlayout)findviewbyid(r.id.v7_refresh); recyclerview=(recyclerview)findviewbyid(r.id.v7_recyclerview); //设置下拉圆圈的大小,两个值 large, default swiperefreshlayout.setsize(swiperefreshlayout.large); // 设定下拉圆圈的背景:默认white // swiperefreshlayout.setprogressbackgroundcolor(android.r.color.white); initdata(); } private void initdata() { binddata(); //设置刷新时动画的颜色,可以设置4个 swiperefreshlayout.setcolorschemeresources(android.r.color.holo_blue_light, android.r.color.holo_red_light, android.r.color.holo_orange_light, android.r.color.holo_green_light); swiperefreshlayout.setonrefreshlistener(new swiperefreshlayout.onrefreshlistener() { @override public void onrefresh() { toast.maketext (mainactivity.this,"正在刷新",toast.length_long).show(); // todo auto-generated method stub new handler().postdelayed(new runnable() { @override public void run() { // todo auto-generated method stub toast.maketext (mainactivity.this,"刷新完成",toast.length_long).show(); swiperefreshlayout.setrefreshing(false); } }, 4000); } }); } private void binddata(){ list=new arraylist<>(); for(int i=0;i<22;i++){ list.add("item"+(i+1)); } recyclerview.setlayoutmanager(new linearlayoutmanager(this)); recyclerview.sethasfixedsize(true); recyclerview.setitemanimator(new defaultitemanimator()); menuadapter menuadapter=new menuadapter(this,r.layout.item,list); recyclerview.setadapter(menuadapter); menuadapter.setonitemclicklistener(new commonrecycleradapter.onitemclicklistener() { @override public void onitemclick(recyclerview.viewholder viewholder, view view, int position) { toast.maketext (mainactivity.this, list.get(position),toast.length_long).show(); } }); } }
运行效果如图:
源码点击下载:swiperefreshlayout_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android SwipeRefreshLayout下拉刷新组件示例
-
Android编程下拉菜单spinner用法小结(附2则示例)
-
Android-自定义控件之ListView下拉刷新的实现
-
Android自定义实现顶部粘性下拉刷新效果
-
Android实现下拉刷新的视图和图标的旋转
-
Android RecyclerView自定义上拉和下拉刷新效果
-
Android RecyclerView设置下拉刷新的实现方法
-
Android控件PullRefreshViewGroup实现下拉刷新和上拉加载
-
Android开发重写Animation实现下拉图片后弹射回去效果示例
-
Android使用ListView实现下拉刷新及上拉显示更多的方法