liaoinstan / SpringView

🔥 A custom view pull to refresh,support ScrollView,ListView,RecyclerView,WebView and all another views, easy to use
Apache License 2.0
1.93k stars 353 forks source link
android-ui footer header pull-to-refresh pulltorefresh refreshlayout smartrefresh

More, please visit:My CSDN     apk demo:download     中文文档:中文文档

SpringView

SpringView is one provides the function of the upper and lower drag and drop components, can be highly customized, implement all kinds of drop-down \ pull painting effect, implementation in the demo: imitation ali travel, imitation Meituan, imitation QQ drop-down brush red envelopes, imitation acfun etc., is fully compatible with the source control such as ListView, RecyclerView, ScrollView, WebView, etc., using a simple, easily customize their style of drag and drop page 这里写图片描述

SpringView Individual independence will head/foot, almost achieve the effect of whatever you want, just need to inherit BaseHeader (or Footer) to implement the interface

SpringView Can dynamically replace the head/tail, you just need to set up different Footer:springView.setHeader(MyHeader());

SpringView Multi-touch support, can two hands drag and drop in a row, you can customize some interesting results

SpringView Provides two methods for drag and drop (overlap and follow), can be dynamically switching

SpringView For lazy people don't want to go to the custom head/tail provides 7 kinds of the default implementation (mimics the ali, tencent, Meituan etc. Various style) as follows, will continue to increase

SpringView support AppBarLayout

这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述

📌new:

这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述

How to use SpringView

Add Spring View in the layout file, note that Spring View and ScrollView have the same limitation: only one child element:

    <com.liaoinstan.springview.widget.SpringView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:header="@layout/myheader"
            app:footer="@layout/myfooter">

            <ListView RecyclerView ScrollView or others
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>

     </com.liaoinstan.springview.widget.SpringView>

Of course, you can also add the header/footer in java code:

    springView.setHeader(new DefaultHeader(this));
    springView.setFooter(new DefaultFooter(this));

Add Listener

If you need to deal with the case, just add a listener in code:

springView.setListener(new SpringView.OnFreshListener() {
      @Override
      public void onRefresh() {
      }
      @Override
      public void onLoadmore() {
      }
});

Get SpringView

use Gradle:

dependencies {

   //SpringView core library (only include DefaultHeader/Footer)
   implementation 'com.liaoinstan.springview:library:1.7.0'

   //other Headers/Footers, choose one or more that you like
   implementation 'com.liaoinstan.springview:AcfunHeader:1.7.0'         //AcFun style (header and footer)
   implementation 'com.liaoinstan.springview:AliHeader:1.7.0'           //Alitrip style (header and footer)
   implementation 'com.liaoinstan.springview:MeituanHeader:1.7.0'       //Meituan style (header and footer)
   implementation 'com.liaoinstan.springview:RotationHeader:1.7.0'      //Mechanical gear style (header and footer)
   implementation 'com.liaoinstan.springview:WeixinHeader:1.7.0'        //WeChat Mini Program header(only header)
   implementation 'com.liaoinstan.springview:DuHeader:1.7.0'        //Du app header(only header)
}

or Maven:

<dependency>
  <groupId>com.liaoinstan.springview</groupId>
  <artifactId>library</artifactId>
  <version>1.7.0</version>
  <type>pom</type>
</dependency>

Update log

v1.7.0

v1.6.0

v1.5.1

v1.5.0

v1.4.0

v1.3.3

v1.3.2

v1.3.0

v1.2.7

v1.2.6

v1.2.5

v1.2.4

v1.2.2

v1.2.1

Feedback

If there are any questions or Suggestions, please feedback to my email: liaoinstan@outlook.com; Or in my blog

If it works to you, please give me a star for my hardwork ,thank you

More

More, please visit:my CSDN blog