两个recycleview列表左右联动实现

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

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

实现思路:

左右两个recycleview列表,左侧是简单列表,右侧是复杂布局列表,示例如下图:
在这里插入图片描述

  1. 如果每次有次的列表内容长度都能够超过父view的高度,则这种情况很简单,可以单纯依据canScrollVertically接口与onScrolled接口中返回的dy即可确定当前是已经到达顶部在继续下拉,还是已经到达了底部在继续上滑。
  2. 如果右侧列表内容长度不能超过父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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值