SuperSwipeRefreshLayout 一个功能强大的自己定义下拉刷新组件

Posted brucemengbm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SuperSwipeRefreshLayout 一个功能强大的自己定义下拉刷新组件相关的知识,希望对你有一定的参考价值。

SuperSwipeRefreshLayout

一个功能强大的自己定义下拉刷新组件。

Why?

下拉刷新这样的控件。想必大家用的太多了,比方使用非常多的XListView等。

近期。项目中非常多列表都是使用ReyclerView实现的。取代了原有的ListView,原有下拉刷新方式遭到挑战。本来Google推出的SwipeRefreshLayout已经能够满足大部分的需求了。

然而,因为其定制性较差。下拉刷新的样式无法改动。并且被嵌套的View也无法尾随手指的滑动而滑动。基于以上考虑,定制自己强大的SuperSwipeRefreshLayout。

Feature

  • 非侵入式。对原来的ListView、RecyclerView没有不论什么影响,使用方法和SwipeRefreshLayout相似。


  • 可自己定义头部View的样式。调用setHeaderView方法就可以
  • 支持很多其它:RecyclerView,ListView,ScrollView。GridView等等。


  • 被包括的View(RecyclerView,ListView etc.)可尾随手指的滑动而滑动
    默认是尾随手指的滑动而滑动。也能够设置为不尾随:setTargetScrollWithLayout(false)
  • 回调方法很多其它
    比方:onRefresh() onPullDistance(int distance)和onPullEnable(boolean enable)
    开发者能够依据下拉过程中distance的值做一系列动画。

How to use

step 1

<net.mobctrl.views.SuperSwipeRefreshLayout
        android:id="@+id/swipe_refresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
</net.mobctrl.views.SuperSwipeRefreshLayout>

step 2


swipeRefreshLayout = (SuperSwipeRefreshLayout) findViewById(R.id.swipe_refresh);
        swipeRefreshLayout.setHeaderView(createHeaderView());// add headerView
        swipeRefreshLayout
                .setOnPullRefreshListener(new OnPullRefreshListener() {

                    @Override
                    public void onRefresh() {
                        //TODO 開始刷新
                    }

                    @Override
                    public void onPullDistance(int distance) {
                        //TODO 下拉距离
                    }

                    @Override
                    public void onPullEnable(boolean enable) {
                        //TODO 下拉过程中,下拉的距离是否足够出发刷新
                    }
                });

step 3

  • create your header view
swipeRefreshLayout.setHeaderView(createHeaderView());// add headerView

/**
 * create Header View
 */
private View createHeaderView(){
   //TODO 创建下拉刷新头部的View样式
}

跟手滑动设置

  • setTargetScrollWithLayout(false/true);//default true
swipeRefreshLayout.setTargetScrollWithLayout(true);

Support View

  • RecyclerView.
  • ListView
  • SrcollView
  • GridView
  • etc.

Demo

效果
技术分享

兴许

如有必要,能够添加上拉载入很多其它的功能。

源代码:

Github https://github.com/nuptboyzhb/SuperSwipeRefreshLayout

源代码分析

兴许有时间更新












以上是关于SuperSwipeRefreshLayout 一个功能强大的自己定义下拉刷新组件的主要内容,如果未能解决你的问题,请参考以下文章

js如何获取上个月第一天和最后一天

一分钟认识:Cucumber框架(一)

nl:::1:一::一、01!iw。n:一1::ld一11一:一、::.,

js 获取当前月和当前周的第一天和最后一天

获取一年中的第一天和最后一天

如何使用js获取某月的第一天和最后一天