SwipeRefreshLayout包装listview滑动事件冲突解决方案

来源:互联网 发布:android软件制作 编辑:程序博客网 时间:2024/05/17 02:40

具体现象,1.listview向下滑动时,再向下滑动会触发SwipeRefreshLayout的下拉刷新事件
2.swiperefreshlayout刷新过程中,listview还可以继续向下滑动
解决方案:
在listview设置setOnTouchListener监听事件

private boolean isRefreshing=false;//listview是否可用 listView.setOnTouchListener(new View.OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {            //判断listview第一个可见的条目是否是第一个条目                if(listView.getFirstVisiblePosition()==0){                    View firstVisibleItemView = listNews.getChildAt(0);                    //判断第一个条目距离listview是否是0,如果是,则srLayout可用,否则不可用                    if (firstVisibleItemView != null && firstVisibleItemView.getTop() == 0) {                        srLayout.setEnabled(true);                    }else {                        srLayout.setEnabled(false);                    }                }else {                    srLayout.setEnabled(false);                }                //根据当前是否是在刷新数据,来决定是否拦截listview的触摸事件                return isRefreshing;            }        });

在srLayout的onRefresh方法中,将isRefreshing设置为true
在srLayout.setRefresh(false)后,及刷新完毕后,将isRefreshing设置为false

0 0
原创粉丝点击