VerticalSwipeRefreshLayout下拉刷新用法

1.自定义VerticalSwipeRefreshLayout 继承SwipeRefreshLayout

public class VerticalSwipeRefreshLayout extends SwipeRefreshLayout {

    private int scaleTouchSlop;
    private float preX;

    public VerticalSwipeRefreshLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        scaleTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        switch (ev.getAction()) {
            case MotionEvent.ACTION_DOWN:
                preX = ev.getX();
                break;
            case MotionEvent.ACTION_MOVE:
                float moveX = ev.getX();
                float instanceX = Math.abs(moveX - preX);
                Log.i("refresh...","move: instanceX:" + instanceX + "=(moveX:" + moveX + " - preX:" + preX + ") , scaleTouchSlop:" + scaleTouchSlop);

                // 容差值大概是24,再加上60
                if(instanceX > scaleTouchSlop + 60){
                    return false;
                }
                break;
        }
        return super.onInterceptTouchEvent(ev);
    }
}

2.xml布局文件

 <cn.yt.itbt.client.view.VerticalSwipeRefreshLayout
        android:id="@+id/swipeLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <ListView
            android:id="@+id/dListView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:divider="@color/Cffffff"
            android:fadingEdge="none"
            android:visibility="visible"></ListView>
    </cn.yt.itbt.client.view.VerticalSwipeRefreshLayout>

3.java代码使用

3.1设置下拉刷新监听器SwipeRefreshLayout.OnRefreshListener

3.2.关键代码

 swipeLayout = (VerticalSwipeRefreshLayout) indexLayout.findViewById(R.id.swipeLayout);
        swipeLayout.setOnRefreshListener(this);
        swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
                android.R.color.holo_green_light,
                android.R.color.holo_orange_light,
                android.R.color.holo_red_light);
        swipeLayout.setRefreshing(false);//初始状态禁用下拉刷新


 @Override
    public void onRefresh() {
        getResult();
        swipeLayout.setRefreshing(false);
   }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,995评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 今日的训练真的太痛苦了,我脑海中无数次的有想要放弃的念头,可是看着旁边的二娃那么认真,我又咬牙坚持了下来,我老公说...
    三文鱼平平阅读 171评论 0 0
  • 大家经常问这样的问题:美国教育与中国教育的区别是什么?如何改革中国教育?中美教育区别可能很多,但大家都忽视了中国教...
  • 红楼叹阅读 148评论 1 1