android所有的下拉刷新控件

    xiaoxiao2021-04-01  36

    https://github.com/baoyongzhang/android-PullRefreshLayout

    Add dependency.

    dependencies { compile 'com.baoyz.pullrefreshlayout:library:1.2.0' }

    Use method like SwipeRefreshLayout's usage.

    Use it in your layout xml.

    <com.baoyz.widget.PullRefreshLayout android:id="@+id/swipeRefreshLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- ListView、ScrollView、RecyclerView、Other --> </com.baoyz.widget.PullRefreshLayout>

    Get instance and use it.

    PullRefreshLayout layout = (PullRefreshLayout) findViewById(...); // listen refresh event layout.setOnRefreshListener(new PullRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { // start refresh } }); // refresh complete layout.setRefreshing(false);

    Change the refresh style, there are five styles of use, MATERIAL、CIRCLES、 WATER_DROP、RING and SMARTISAN.

    In java, call setRefreshStyle method.

    layout.setRefreshStyle(PullRefreshLayout.STYLE_CIRCLES);

    In xml, use attributes.

    <com.baoyz.widget.PullRefreshLayout android:id="@+id/swipeRefreshLayout" android:layout_width="match_parent" android:layout_height="match_parent" app:refreshType="water_drop"> </com.baoyz.widget.PullRefreshLayout>

    Change the color scheme. In java, call setColorSchemeColors method. The int array length must be 4.

    layout.setColorSchemeColors(int []);

    For Smartisan style, it has only one color, can call 'setColor' method, to set one color.

    layout.setColor(int);

    In xml, use attributes.

    <com.baoyz.widget.PullRefreshLayout android:id="@+id/swipeRefreshLayout" android:layout_width="match_parent" android:layout_height="match_parent" app:refreshColors="@array/scheme_colors" app:refreshColor="@color/one_color"> </com.baoyz.widget.PullRefreshLayout>

    If you do not like these styles, you can customize the refresh style.

    class CustomDrawable extends RefreshDrawable{ @Override public void setPercent(float percent) { // Percentage of the maximum distance of the drop-down refresh. } @Override public void setColorSchemeColors(int[] colorSchemeColors) { } @Override public void offsetTopAndBottom(int offset) { // Drop-down offset. } @Override public void start() { isRunning = true; // Refresh started, start refresh animation. } @Override public void stop() { isRunning = false; // Refresh completed, stop refresh animation. } @Override public boolean isRunning() { return isRunning; } @Override public void draw(Canvas canvas) { // Draw custom style. } }

    Call setRefreshDrawable() method to use your custom refresh drawable.

    layout.setRefreshDrawable(new CustomDrawable());
    转载请注明原文地址: https://ju.6miu.com/read-665587.html

    最新回复(0)