Skip to content
xu.jingyu edited this page Aug 8, 2020 · 2 revisions

点击查看List的Demo

继承关系

List extends View

简介

列表数据展示控件,内容可复用

该控件使用复用的方式加载列表数据,根据数据源组数个数进行回调。支持上拉加载更多,下拉刷新数据。在上拉加载更多数据时,建议必要使用reloadData进行数据刷新,要采用局部刷新的方式进行刷新,效率会更高。

⚠️ 当cell的样式一致时,使用默认初始化方法即可,当cell样式较多时,要采用复用ID的形式进行初始化和赋值操作。另外,iOS默认展示滚动指示条,android默认不展示

构造方法

List() 构造方法

⚠️ 刷新功能需桥接对应的代理方法

List(table sourceData) 构造方法

⚠️ 刷新功能需桥接对应的代理方法

API

ID(string id)

设置视图id

bind(function func)

bind

bindData(table sourceData)

绑定数据

bindCell(function func)

绑定cell

registerCell(string cellType)

绑定cell

loadThreshold(number threshold)

设置加载更多的阈值,默认为0,取值范围0~1

⚠️ eg:0.5表示还剩一半屏幕高度的页面还未显示时,就触发setLoadingCallback回调

获取当前预加载的阈值

设置内容偏移量

⚠️ contentOffset,即内容偏移量,我们把List内容的左上角坐标看做原点origin(0, 0),内容偏移量即为当前实现内容的左上角坐标pt与origin之间的差值contentOffset(pt.x - origin.x, pt.y - origin.y)

获取内容偏移量坐标

⚠️ contentOffset,即内容偏移量,我们把List内容的左上角坐标看做原点origin(0, 0),内容偏移量即为当前实现内容的左上角坐标pt与origin之间的差值contentOffset(pt.x - origin.x, pt.y - origin.y)

设置是否展示滚动指示器

⚠️ Android部分场景,指示器位置不能划到底部

重新回调所有的cell高度,并回调当前屏幕上cell的init和filData方法

⚠️ 在数据量特别大的情况下,当数据量较大并且使用heightForCell回调高度时,注意涉及到需要计算的高度要使用lua table进行缓存

reloadAtRow(number row, number section, boolean animated)

刷新某一行的数据

⚠️ 动画效果仅ios有效,并且使用时请勿改变其他cell的内容,否则两端会有差异:android可以更新多个cell,ios只能更新单个

reloadAtSection(number section, boolean animated)

刷新某个组里所有行的数据

⚠️ 动画效果仅ios有效,并且使用时请勿改变其他cell的内容,否则两端会有差异:android可以更新多个cell,ios只能更新单个

scrollToTop(boolean animated)

滚动到控件的顶部

scrollToCell(number row, number section, boolean animated)

滚动到某个cell

deleteCellAtRow(number row, number section)

删除某行cell

insertCellAtRow(number row, number section)

在指定位置插入cell

deleteCellsAtSection(number section, number startRow, number endRow)

删除指定位置的cell

insertCellsAtSection(number section, number startRow, number endRow)

在指定位置插入cell

insertRow(number row, number section, boolean animated)

在指定位置插入cell

deleteRow(number row, number section, boolean animated)

删除指定位置的cell

insertRowsAtSection(number section, number startRow, number endRow, boolean animated)

在指定位置范围插入cell

deleteRowsAtSection(number section, number startRow, number endRow, boolean animated)

在指定位置范围删除cell

是否在最顶端

设置是否开启下拉刷新功能

⚠️ 需要确保对应刷新的handler已经添加,在刷新过程中关闭会导致视图抖动

获取是否开启了下拉刷新功能,默认false

获取当前是否正在刷新中

开始刷新动作

停止刷新动作

refresh(function callback)

设置触发了下拉刷新的回调

设置是否开启上拉加载更多

⚠️ 默认false,需要增加刷新对应的handler处理,在加载过程中关闭会导致视图抖动

获取当前是否开启了上拉加载更多功能

获取是否正在上拉加载中

停止加载更多的动作

触发没有更多数据,在List的底部会展示没有更多数据的提示

去除“没有更多数据”的状态,将状态变成普通状态

触发加载失败

滚动到指定位置

⚠️ iOS可用, android sdk version >= 1.5.0可用

load(function callback)

设置触发了加载更多的回调

cellWithSectionRow(number section, number row)

返回指定位置的cell, 只对屏幕内cell有效

返回当前屏幕展示的所有cell

设置是否可以滚动

i_bounces(boolean bounces)

设置是否开启弹性效果

⚠️ iOS私有方法,仅在必要时使用,使用时需判断平台

获取是否开启弹性效果

⚠️ iOS私有方法,仅在必要时使用,使用时需判断平台

设置是否开启垂直弹性效果

⚠️ iOS私有方法,仅在必要时使用,使用时需判断平台

获取是否开启垂直弹性效果

⚠️ iOS私有方法,仅在必要时使用,使用时需判断平台

cellSelected(function callback)

点击某行

cellLongPress(function callback)

长按某行

cellWillAppear(function callback)

cell将要展示的回调

cellDidDisappear(function callback)

cell已经消失后的回调

cellReuseId(function callback)

设置回调复用ID

scrollBegin(function callback)

设置开始滚动回调

scrolling(function callback)

设置滚动中回调

endDragging(function callback)

设置拖拽结束回调,即拖动结束手指离开屏幕的瞬间

startDecelerating(function callback)

设置滚动开始减速的回调

scrollEnd(function callback)

设置滚动结束回调

点击Cell后高亮

获取是否开启了高亮效果

pressedColor(Color pressedColor)

点击后的高亮颜色

获取高亮颜色

Clone this wiki locally