Android 下拉刷新,非常强大的下拉刷新功能

Android下拉刷新各式各样,今天介绍两种常见的

第一种下拉刷新就是Android自带API ,V4包下面的

android.support.v4.widget.SwipeRefreshLayout

只要将要刷新的控件放到SwipeRefreshLayout  里面

比如:

android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
            android:id="@+id/rv"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


然后再代码里面

mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
mSwipeRefreshLayout.setOnRefreshListener( new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { new Handler().postDelayed( new Runnable() { @Override public void run() { List headDatas = new ArrayList<>() ; for ( int i = 30 ; i < 40 ; i++) { headDatas.add( "Heard Item " + i) ; } mMyAdapter.AddHeaderItem(headDatas) ; // 刷新完成 mSwipeRefreshLayout.setRefreshing( false) ; Toast. makeText(MainActivity. this, " 更新了 " + headDatas.size() + " 条目数据 " , Toast. LENGTH_SHORT).show() ; } } , 3000) ; }}) ;

第二种介绍第三方的下拉刷新

首先

compile 'in.srain.cube:ultra-ptr:1.0.11'
应用一下

然后在布局文件.xml加上

    xmlns:cube_ptr="http://schemas.android.com/apk/res-auto"
    android:id="@+id/store_house_ptr_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    cube_ptr:ptr_duration_to_close="300"
    cube_ptr:ptr_duration_to_close_header="800"
    cube_ptr:ptr_keep_header_when_refresh="true"
    cube_ptr:ptr_pull_to_fresh="false"
    cube_ptr:ptr_ratio_of_header_height_to_refresh="1.2"
    cube_ptr:ptr_resistance="1.7">




代码里面

mPtrClassicFrameLayout = (PtrClassicFrameLayout) findViewById(R.id.store_house_ptr_frame);
mPtrClassicFrameLayout.setPtrHandler(new PtrHandler() {
    @Override
    public void onRefreshBegin(PtrFrameLayout frame) {
        frame.postDelayed(new Runnable() {
            @Override
            public void run() {
                mPtrClassicFrameLayout.refreshComplete();
                mPtrClassicFrameLayout.setLastUpdateTimeKey("2017-2-10");
            }
        }, 2000);
    }

    @Override
    public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
        return PtrDefaultHandler.checkContentCanBePulledDown(frame, content, header);
    }
});
既可以下拉刷新,还可以修改第三方,变成产品要求的背景样式.


你可能感兴趣的:(Android 下拉刷新,非常强大的下拉刷新功能)