SwipeRefreshLayout下拉刷新上拉加载详解
来源:互联网 发布:小狐仙软件 编辑:程序博客网 时间:2024/05/17 09:47
SwipeRefreshLayout是一个很好用的下拉刷新上拉加载的第三方库,使用起来超级简单。
它有一下几种样式:
下拉
<样式一>
<样式二>
上拉
<样式三>
<样式四>
首先是添加依赖:
compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.1'compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.1'
然后在xml布局里添加
<?xml version="1.0" encoding="utf-8"?><com.scwang.smartrefresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/refreshLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <com.scwang.smartrefresh.layout.header.ClassicsHeader srlClassicsSpinnerStyle="FixedBehind" android:layout_width="match_parent" android:layout_height="wrap_content" /> <!--FixedBehind可以让Header固定在内容的背后,下拉的时候效果同微信浏览器的效果--> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:padding="5dp" android:text="哇咔咔" /> <com.scwang.smartrefresh.layout.footer.ClassicsFooter srlClassicsSpinnerStyle="FixedBehind" android:layout_width="match_parent" android:layout_height="wrap_content" /></com.scwang.smartrefresh.layout.SmartRefreshLayout>
在这个布局里,如果不写下面这段布局代码,那么下拉刷新只能是默认样式,也就是上图的<样式一>,加了之后才有样式二的效果。
<com.scwang.smartrefresh.layout.header.ClassicsHeader srlClassicsSpinnerStyle="FixedBehind" android:layout_width="match_parent" android:layout_height="wrap_content" />
上拉加载也是同样的道理,加了以下代码才有上图<样式四>的效果,否则就是样式三
<com.scwang.smartrefresh.layout.footer.ClassicsFooter srlClassicsSpinnerStyle="FixedBehind" android:layout_width="match_parent" android:layout_height="wrap_content" />
这里根据自己的需求选择,但有一点值得注意:如果将以上代码全部写全,布局里就有三个自定义的控件,若此时再往里加一个自定义的控件就有可能会报异常,我在项目中还加了一个可以侧滑的自定义listview后就报了异常,最后只好把下拉刷新设置成默认的样式。
下面是java代码,同样非常简单:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // smartRefreshLayout= (SmartRefreshLayout) findViewById(R.id.refreshLayout); /** * 可不设置,有默认样式 * 设置 Header 为 Material风格 * 这两段代码只有在布局里添加了上拉和下拉的代码才有效果 */ smartRefreshLayout.setRefreshHeader(new MaterialHeader(this).setShowBezierWave(true)); smartRefreshLayout.setRefreshFooter(new BallPulseFooter(this).setSpinnerStyle(SpinnerStyle.Scale)); //下拉刷新 smartRefreshLayout.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh(RefreshLayout refreshlayout) { smartRefreshLayout.finishRefresh(2000); } }); //上拉加载 smartRefreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() { @Override public void onLoadmore(RefreshLayout refreshlayout) { smartRefreshLayout.finishLoadmore(2000); } }); }
代码就这么点,很简单。
下载源码
阅读全文
0 0
- SwipeRefreshLayout下拉刷新上拉加载详解
- SwipeRefreshLayout 上拉加载与下拉刷新
- SwipeRefreshLayout下拉刷新和上拉加载
- SwipeRefreshLayout上拉加载 下拉刷新
- swipeRefreshLayout 上拉加载 下拉刷新
- SwipeRefreshLayout下拉刷新与上拉加载更多,分页加载
- 详解自主实现RecyclerView下拉刷新、上拉加载、Header、Footer以及swiperefreshlayout的部分讲解
- SwipeRefreshLayout实现下拉刷新、上拉加载更多功能
- 原生的上拉刷新 SwipeRefreshLayout和下拉加载
- SwipeRefreshLayout的下拉刷新与上拉加载
- 使用SwipeRefreshLayout实现下拉刷新与上拉加载更多
- Android SwipeRefreshLayout 包含ListView 上拉刷新 下拉加载
- Android SwipeRefreshLayout下拉刷新与上拉加载+滑动删除
- Android SwipeRefreshLayout下拉刷新与上拉加载+滑动删除
- RecyclerView和SwipeRefreshLayout下拉刷新和上拉加载
- SwipeRefreshLayout+ListView实现下拉刷新自定义上拉加载
- 自定义下拉刷新上拉加载更多(SwipeRefreshLayout)风格
- SwipeRefreshLayout+RecyclerView实现下拉刷新上拉自动加载
- 进程和线程
- INSTALL_HADOOP
- MRU
- Oracle数据类型和对应的java类型
- jQuery
- SwipeRefreshLayout下拉刷新上拉加载详解
- mac 升级到10.13,CocoaPods不能使用了。
- 软件工程视频学习——第六章——面向对象的分析和设计方法
- kotlin说:老兄(Swift)我们一起打江山!
- 开源 SQL 语法转换 中间件
- eclipse不支持tomcat8.0版本解决
- 初识View-TWO
- jquery使用ajax
- 安卓开发(3):事件处理