29995270 / HorizontalRefreshLayout

a android layout widget for horizontal drag refresh action (viewpager or recyclerview)
75 stars 12 forks source link
android-layout-widget refreshlayout

HorizontalRefreshLayout

a android layout widget for horizontal drag refresh action (viewpager or recyclerview or horizontal Scrollview)


dependencies

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

    allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

Step 2. Add the dependency

    dependencies {
            compile 'com.github.29995270:HorizontalRefreshLayout:1.0.1'
    }

how to use

    <com.wq.freeze.horizontalrefreshlayout.lib.HorizontalRefreshLayout
        android:id="@+id/refresh"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white">
        <android.support.v4.view.ViewPager
            android:id="@+id/vp"
            android:layout_width="match_parent"
            android:layout_height="300dp"/>
    </com.wq.freeze.horizontalrefreshlayout.lib.HorizontalRefreshLayout>
    refreshLayout.setRefreshMode(HorizontalRefreshLayout.MODE_ABOVE);
    //MODE_ABOVE: RefreshHeader above of refreshable view
    //MODE_UNDER: RefreshHeader under the refreshable view
    //MODE_UNDER_FOLLOW_DRAG: RefreshHeader under the refreshable view and follow drag action

    //define your RefreshHeader
    refreshLayout.setRefreshHeader(new MaterialRefreshHeader(HorizontalRefreshLayout.START),
                    HorizontalRefreshLayout.START);
    refreshLayout.setRefreshHeader(new MaterialRefreshHeader(HorizontalRefreshLayout.END),
            HorizontalRefreshLayout.END);

    refreshLayout.setRefreshCallback(this);

    // refreshLayout.startAutoRefresh(true); // if you want to refresh in code

    @Override
    public void onLeftRefreshing() {
        refreshLayout.postDelayed(new Runnable() {
            @Override
            public void run() {
                adapter.onRefresh();
                refreshLayout.onRefreshComplete();
            }
        }, 1000);
    }

    @Override
    public void onRightRefreshing() {
        refreshLayout.postDelayed(new Runnable() {
            @Override
            public void run() {
                adapter.onLoadMore();
                refreshLayout.onRefreshComplete();
            }
        }, 1000);
    }