判断SwipeRefreshLayout的childView是否到达顶部

来源:互联网 发布:淘宝闲鱼下载 编辑:程序博客网 时间:2024/05/18 04:28

重写swipRefreshLayout,实现chidView只有到达顶部的时候,才可以下拉刷新:
使用方法:直接在xml中使用MySwipeRefreshLayout

import android.content.Context;import android.support.v4.view.ViewCompat;import android.support.v4.widget.SwipeRefreshLayout;import android.util.AttributeSet;import android.view.View;import android.widget.AbsListView;/** * Created by Jack on 2017/7/12. */public class MySwipeRefreshLayout extends SwipeRefreshLayout{    //实际需要滑动的child view    private View mScrollUpChild;    public MySwipeRefreshLayout(Context context) {        super(context);    }    public MySwipeRefreshLayout(Context context, AttributeSet attrs) {        super(context, attrs);    }    public void setScrollUpChild(View view) {        mScrollUpChild = view;    }    @Override    public boolean canChildScrollUp() {        if (mScrollUpChild != null) {            if (android.os.Build.VERSION.SDK_INT < 14) {                if (mScrollUpChild instanceof AbsListView) {                    final AbsListView absListView = (AbsListView) mScrollUpChild;                    return absListView.getChildCount() > 0                            && (absListView.getFirstVisiblePosition() > 0 || absListView.getChildAt(0)                            .getTop() < absListView.getPaddingTop());                } else {                    return ViewCompat.canScrollVertically(mScrollUpChild, -1) || mScrollUpChild.getScrollY() > 0;                }            } else {                return ViewCompat.canScrollVertically(mScrollUpChild, -1);            }        }        return super.canChildScrollUp();    }}
阅读全文
0 0
原创粉丝点击