贡献一个自定义ListView 实现, 高效复用机制以及便捷的使用接口

一种可以在 item 预置体挂载的组件代码中设置click事件.
一种可以在adapter的updateView里 对item 设置click监听. 都很方便的.
暂时没有必要由listView提供itemClick的监听设置.

get

和我想法一样~

往上拖后立马往下拖会出现顶部的几个item空缺

感谢分享

不推荐在线上项目使用,线上情况完全比demo复杂,使用的过程可能造成不可描述的bug。

1赞

swapcount 设置大一点即可.swapcount 用来控制可显示条目之外的若干条. 用于流畅快滑操作.

厉害了

横向的有问题,无法使用

1楼的demo,横向的可以用

如果高度不固定的话要怎么实现啊

高度不固定要怎么实现啊

mark

mark!

需要多行多列的 并且每个item高度随机变化的。。

动态添加数据,调用notifyUpdate更新显示,回收item的逻辑会有问题,会不停的实例化新的item @andrewlu

不错,赞

mark

ListView 组件大更新, 增加网格式列表布局, 增加滚动到某一页的API. 可以方便实现滚动到下一页的需求.
ListView.zip (3.1 KB)

更新1: 翻页滚动API:


可以规定每一页的Item 数量, 比如以 每5个item 为一页, 则调用时每次滚动5个item. 如果不传pageCount, 则默认以 Listview 的可视范围的宽/高为一页尺寸进行滚动.

更新2: 增加网格式页面布局:


Spacing 参数控制行列间距.
Margin 参数控制 元素边距.
SpawnCount 控制额外渲染元素, 一般设为1~2即可.即额外渲染可视区外的若干元素.
Column 参数控制 有多少列/行. 默认为1, 即普通的listview. 根据Scrollview 的Horizontal/Vertical 属性, Column 决定是多列还是多行. Vertical 模式下, 元素从上到下排列, 每行Column个元素. 同理, Horizontal 模式下, 元素从左往右排列, 每列从上到下Column 个元素.

更新3: 底层实现重写, 消除旧版本可能渲染不出元素的bug. 以及性能提升.

示例: 纵向5列式排布:

横向两行式排布:

3赞

感谢,最新代码很棒,可以动态更新items了

有1个问题:
recycleDirty 这个方法作用是什么?

还有个建议:
把代码发到github上吧!