Android SwipeRefreshLayout 刷新

 implementation 'com.android.support:design:28.0.0'

design包下的 可能过一段时间 就会跑到X里边,不需要再手动依赖了


mViewBinding.swipe.setRefreshing(false);

true 和 false  分别标识 刷新中 和 停止刷新 ;俩种状态

这里主要是说一下这个自动刷新

public class AutoSwipeRefreshView extends SwipeRefreshLayout {

    public AutoSwipeRefreshView(Context context) {
        super(context);
    }

    public AutoSwipeRefreshView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    /**
     * 自动刷新
     */
    public void autoRefresh() {
        try {
            Field mCircleView = SwipeRefreshLayout.class.getDeclaredField("mCircleView");
            mCircleView.setAccessible(true);
            View progress = (View) mCircleView.get(this);
            progress.setVisibility(VISIBLE);
            Method setRefreshing = SwipeRefreshLayout.class.getDeclaredMethod("setRefreshing", boolean.class, boolean.class);
            setRefreshing.setAccessible(true);
            setRefreshing.invoke(this, true, true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void setOnRefreshListener(@Nullable OnRefreshListener listener) {
        super.setOnRefreshListener(listener);
    }


}

用反射做修改..

进入页面自动刷新autoRefresh

设置刷新监听 在监听方法中设置 网络请求

在请求得到数据后 的回调里进行 setRefresh(false)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Android SwipeRefreshLayout 刷新)