仿饿了么,百度外卖这些App的双ListView列表联动效果

本文介绍了如何在Android中仿照饿了么、百度外卖App实现双ListView的联动效果。主要涉及自定义一个带有悬浮头部及移动效果的PinnedHeaderListView,以及在Adapter中设置数据并监听滚动事件来同步两个列表的滚动位置。详细步骤包括自定义ListView的构造、测量、布局、绘制等方法,并在Adapter中设置头部状态和内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仿饿了么,百度外卖这些App的双列表联动效果



思路:
1.自定义一个悬浮条目且带移动替换效果的 ListView。
2.在界面中左边是个普通的ListView,右边是我们自定义带效果的ListView。
3.设置右边ListView的滚动监听,右边ListView对应的数据源DoubleLietBean中有一个title属性和左边的内容相同。获取到右边 首个 条目的title,在左边 ListView的 数据集合找到对应的条目索引,滚动到指定条目。
4.设置左边ListView的滚动监听,逻辑和上面类似,通过title属性获取到索引,移动到右边指定的条目。

一、自定义一个悬浮头部且带移动效果的PinnedHeaderListView
.
1.作用:悬浮的头部Listview,效果是切换到另一个不同的条目种类的时候,会有另一个条目头部将第一个悬浮的头部顶替出去的效果。
2.原理:自定义ListView在头部绘制一个HeaderView,滚动时通过adapter获取首个条目的类型,从而判断HeaderView应处于不同的状态,最后实现HeaderView隐藏、显示、上移的效果。
3.实现步骤:
①重写三个构造方法,最后都调用三个参数的构造
②设置 setPinnedHeaderView方法 从外界传入头部条目
③onMeasure方法测量HeaderView的宽高
④onLayout方法摆放 HeaderView,通过adapte设置HeaderView的内容,同时确定 HeaderView的状态是 隐藏、显示还是上移。
⑤dispatchDraw方法对HeaderView进行绘制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值