炫酷的列表下拉刷新效果

栏目: IOS · Android · 发布时间: 7年前

内容简介:下拉刷新是一个很常见的功能,现在很多app提供的下拉刷新效果都千篇一律,就像Google为我们提供的Talk is cheap ,show me the gif:效果是不是很爆炸?看一下如何将这个炫酷的下拉刷新效果使用到我们的应用中:

下拉刷新是一个很常见的功能,现在很多app提供的下拉刷新效果都千篇一律,就像Google为我们提供的 SwipeRefreshlayout ,看多了是不是觉得有些厌倦了?如果在用户进行下拉等待的时候,给他们提供一些有创造力的效果,绝对会给用户带来不一样的体验。今天就为大家介绍一个 烟花下拉刷新 效果- FireworkyPullToRefresh

Talk is cheap ,show me the gif:

炫酷的列表下拉刷新效果
炫酷的列表下拉刷新效果

效果是不是很爆炸?看一下如何将这个炫酷的下拉刷新效果使用到我们的应用中:

build.gradle 中添加依赖:

compile 'com.cleveroad:fireworkypulltorefresh:1.0.3'
复制代码

在xml文件中, RecyclerView 的父容器使用 FireworkyPullToRefresh :

<com.cleveroad.pulltorefresh.firework.FireworkyPullToRefreshLayout
        android:id="@+id/pullToRefresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

</com.cleveroad.ptr.FireworkyPullToRefreshLayout>
复制代码

FireworkyPullToRefresh 提供了如下一些可以配置的属性:

  • ptr_fireworkColors: 设置烟花的颜色

  • ptr_background: 头部下来部分的背景图片

  • ptr_rocketAnimDuration:烟花发射的动画时间

  • ptr_fireworkStyle: 设置烟花的模式 classic or modern

以上四个配置可以直接在xml中使用:

<com.cleveroad.pulltorefresh.firework.FireworkyPullToRefreshLayout
        xmlns:app="http://schemas.android.com/apk/res-auto"
        ...
        app:ptr_fireworkColors="@array/fireworkColors"
        app:ptr_background="@drawable/background"
        app:ptr_rocketAnimDuration="1000">
复制代码

也可以在代码中设置:

//use .config() methods:

mPullToRefresh.getConfig().setBackground(backgroundDrawable);
mPullToRefresh.getConfig().setBackground(backgroundBitmap);
mPullToRefresh.getConfig().setBackground(R.drawable.background);
mPullToRefresh.getConfig().setBackgroundColor(Color.BLACK);
mPullToRefresh.getConfig().setBackgroundColorFromResources(R.color.background);

mPullToRefresh.getConfig().setFireworkColors(colorsIntArray);
mPullToRefresh.getConfig().setFireworkColors(R.array.fireworkColors);

mPullRefreshView.getConfig().setFireworkStyle(Configuration.FireworkStyle.MODERN);

mPullToRefresh.getConfig().setRocketAnimDuration(1000L);
复制代码

刷新回调

用法跟 SwipeRefreshlayout 很相似,通过实现接口 PullToRefreshView.OnRefreshListener 来添加刷新逻辑:

mPullToRefresh.setOnRefreshListener(new PullToRefreshView.OnRefreshListener() {
    @Override
    public void onRefresh() {
        //refresh your data here        
    }
});
复制代码

开始或者取消动画:

mPullRefreshView.setRefreshing(isRefreshing);
复制代码

自定义动画

如果你想要自己实现动画,也是可以的,重写 FireworkyPullToRefreshLayout.OnChildScrollUpCallback 来实现你自己的动画逻辑

mPullToRefresh.setOnChildScrollUpCallback(new FireworkyPullToRefreshLayout.OnChildScrollUpCallback() {
    @Override
    public boolean canChildScrollUp(@NonNull FireworkyPullToRefreshLayout parent, @Nullable View child) {
        //put your implementation here
    }
});
复制代码

具体的实现细节可以查源码,github: github.com/Cleveroad/F…

炫酷的列表下拉刷新效果

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Blog Design Solutions

Blog Design Solutions

Richard Rutter、Andy Budd、Simon Collison、Chris J Davis、Michael Heilemann、Phil Sherry、David Powers、John Oxton / friendsofED / 2006-2-16 / USD 39.99

Blogging has moved rapidly from being a craze to become a core feature of the Internetfrom individuals sharing their thoughts with the world via online diaries, through fans talking about their favori......一起来看看 《Blog Design Solutions》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具