概述:
在之前的项目中曾经做过电商分类页面左右两个列表联动的实现,当时的做法是左侧列表使用RecycleView,右侧列表使用的是ScrollView,通过onOverScrolled方法来检测右侧列表是否已经到达了顶部继续下拉还是已经到达了底部继续上滑。这种方式肃然也实现了左右两个列表联动的需求,但是体验上还是有继续优化的空间,之后做了一版优化,左右两个列表都是用recycleview来实现。
实现思路:
左右两个recycleview列表,左侧是简单列表,右侧是复杂布局列表,示例如下图:

- 如果每次有次的列表内容长度都能够超过父view的高度,则这种情况很简单,可以单纯依据canScrollVertically接口与onScrolled接口中返回的dy即可确定当前是已经到达顶部在继续下拉,还是已经到达了底部在继续上滑。
- 如果右侧列表内容长度不能超过父view的高度,则第一点的方法就会失效,无法区分以上描述的两种情况。
这里针对这个问题需要额外的添加一个自定义view来确定手指的滑动方向。
public class TouchCheckView extends RelativeLayout {
private float originY,currentY;
public TouchCheckView(Context context) {
this(context, null);
}
public TouchCheckView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTou

本文介绍了如何实现两个RecycleView列表的左右联动。在之前的实现中,左侧列表使用RecycleView,右侧使用ScrollView,但存在体验上的不足。经过优化,现在左右两侧都采用RecycleView。当列表内容超过父视图高度时,通过canScrollVertically接口和onScrolled接口判断滑动状态。若内容不足,通过自定义TouchCheckView监听滑动方向。文章详细阐述了实现思路和主要处理逻辑。

5974

被折叠的 条评论
为什么被折叠?



