SwipeRefreshLayout 嵌套ScrollView 滑动冲突
【摘要】
冲突来源于 ScrollView 向下滑动的时候会触发 SwipeRefreshLayout 下拉刷新。
解决思路:
根据ScrollView 滑动距离动态处理SwipeRefreshLayout 刷...
冲突来源于 ScrollView 向下滑动的时候会触发 SwipeRefreshLayout 下拉刷新。
解决思路:
根据ScrollView 滑动距离动态处理SwipeRefreshLayout 刷新。
mScrollView.setScrollViewListener(new GradationScrollView.ScrollViewListener() {
@Override
public void onScrollChanged(GradationScrollView scrollView, int x, int y, int oldx, int oldy) {
//y 滚动的高度
//解决 SwipeRefreshLayout 与 ScrollView 滑动冲突
if (y <= 0)
mSwipeRefreshLayout.setEnabled(true);
else
mSwipeRefreshLayout.setEnabled(false);
}
});
- y是ScrollView 滚动的高度
- 当y<=0的时候即表示 ScrollView 已经滑到顶部了,这个时候就允许触发下拉刷新
- 反之亦然
自定义带滑动监听的scrollview
package cn.caihuadadao.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;
/**
* 带滑动监听的scrollview
*/
public class MyScrollView extends ScrollView {
public interface ScrollViewListener {
void onScrollChanged(MyScrollView scrollView, int x, int y, int oldx, int oldy);
}
private ScrollViewListener scrollViewListener = null;
public MyScrollView(Context context) {
super(context);
}
public MyScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyScrollView (Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setScrollViewListener(ScrollViewListener scrollViewListener) {
this.scrollViewListener = scrollViewListener;
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if (scrollViewListener != null) {
scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
}
}
}
文章来源: blog.csdn.net,作者:yechaoa,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/yechaoa/article/details/86609380
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)