materialRefreshLayout 下拉刷新

ゝ一纸荒年。 2022-06-07 23:06 354阅读 0赞

谈一谈下拉刷新

下拉刷新不再是很高大上的东西了,Android应用必不可少的一个存在,大部分的下拉刷新都是基于基本组件的如:ListView,GridView之类的,不同的组件用的布局是不一样的,虽然功能强大,但是难免切换来切换去会烦。Google考虑到这一点,在V4的包中给我们提供了一个简单且牛逼的组件库就是SwipeLayout。

SwipeLayout是从ViewGroup的层面上动刀,不再依赖于某个基本的控件,它是全通用的,看起来是不是很牛逼,但是Google并没有为这个组件提供给上拉加载的回调,需要我们自己去写,虽然很简单能实现,但是依旧感觉很烦,有没有简单集成并且所有组件通用的下拉组件吗?有,自己去写吧,哈哈,不过我推荐一种相对于比较完美的一个下拉组件:MaterialRefreshLayout,它也是在SwipeLayout的基础上封装的

一、MaterialRefreshLayout的简单集成

[java] view plain copy

print ?

  1. 引入 compile ‘com.cjj.materialrefeshlayout:library:1.3.0’

    引入 compile ‘com.cjj.materialrefeshlayout:library:1.3.0’

在打开你的项目中的Gradle文件夹中的builder.gradle文件

SouthEast

二、MaterialRefreshLayout使用

[java] view plain copy

print ?

  1. <com.cjj.MaterialRefreshLayout
  2. android:id=”@+id/refresh”
  3. xmlns:android=”http://schemas.android.com/apk/res/android”
  4. xmlns:app=”http://schemas.android.com/apk/res-auto”
  5. android:layout_width=”match_parent”
  6. android:layout_height=”match_parent”
  7. app:overlay=”false”
  8. app:wave_show=”true”
  9. <ListView
  10. android:id=”@+id/listview”
  11. android:layout_width=”match_parent”
  12. android:layout_height=”match_parent”/>
    1. <ListView
    2. android:id="@+id/listview"
    3. android:layout_width="match_parent"
    4. android:layout_height="match_parent"/>

效果图:

20161105162444465

如果你把其中的一个属性改成app:overlay=”true”

效果为:

20161105163009030

很明显唯一的区别就是下拉的布局是否会覆盖listview的布局

另外,你在xml中还要加上一个自定义属性:app:isLoadMore=”true”,因为MaterialRefreshLayout默认是把上拉关闭的,不加上拉不会起作用的

20161105163429359

在介绍几个好玩的属性:

app:wave_color=”#61bf5c”改变刷新布局的背景颜色

20161105164103748

app:wave_height_type=”higher” 改变刷新布局的高度,自己去试

二、MaterialRefreshLayout的使用

[java] view plain copy

print ?

  1. private MaterialRefreshLayout mMaterialRefreshLayout;
  2. mMaterialRefreshLayout = (MaterialRefreshLayout) findViewById(R.id.refresh);
  3. mMaterialRefreshLayout.setMaterialRefreshListener(new MaterialRefreshListener() {
  4. @Override
  5. public void onRefresh(MaterialRefreshLayout materialRefreshLayout) {
  6. new Handler().postDelayed(new Runnable() {
  7. @Override
  8. public void run() {
  9. //下拉刷新停止
  10. mMaterialRefreshLayout.finishRefresh();
  11. }
  12. },3000);
  13. }
  14. @Override
  15. public void onRefreshLoadMore(MaterialRefreshLayout materialRefreshLayout) {
  16. super.onRefreshLoadMore(materialRefreshLayout);
  17. new Handler().postDelayed(new Runnable() {
  18. @Override
  19. public void run() {
  20. //上拉加载停止
  21. mMaterialRefreshLayout.finishRefreshLoadMore();
  22. }
  23. },3000);
  24. }
  25. });

    private MaterialRefreshLayout mMaterialRefreshLayout;
    mMaterialRefreshLayout = (MaterialRefreshLayout) findViewById(R.id.refresh);
    mMaterialRefreshLayout.setMaterialRefreshListener(new MaterialRefreshListener() {

    1. @Override
    2. public void onRefresh(MaterialRefreshLayout materialRefreshLayout) {
    3. new Handler().postDelayed(new Runnable() {
    4. @Override
    5. public void run() {
    6. //下拉刷新停止
    7. mMaterialRefreshLayout.finishRefresh();
    8. }
    9. },3000);
    10. }
    11. @Override
    12. public void onRefreshLoadMore(MaterialRefreshLayout materialRefreshLayout) {
    13. super.onRefreshLoadMore(materialRefreshLayout);
    14. new Handler().postDelayed(new Runnable() {
    15. @Override
    16. public void run() {
    17. //上拉加载停止
    18. mMaterialRefreshLayout.finishRefreshLoadMore();
    19. }
    20. },3000);
    21. }

    });

使用简单,一看就ok了,写博客好累的,休息,休息一会!

官方提供了6中下拉效果,想要了解更多,请去官方查看

https://github.com/android-cjj/Android-MaterialRefreshLayout

发表评论

表情:
评论列表 (有 0 条评论,354人围观)

还没有评论,来说两句吧...

相关阅读

    相关 uniapp 刷新

    这里,最好仔细看一下scroll-view组件的api介绍。scroll-view | uni-app官网//开启自定义下拉刷新//初始情况下,关闭刷新状态/*自定义下拉...