Skip to content

TableView

xu.jingyu edited this page Jan 14, 2020 · 10 revisions

点击查看TableView的Demo

继承关系

TableView extends View

简介

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

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

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

构造方法

TableView(boolean refreshEnable, boolean loadEnable) 构造方法

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

API

提供数据与view的绑定;提供点击等事件的回调

⚠️ 建议TableViewAdapter初始化完后再对TableView进行设置,因为设置adapter会触发刷新,当初始化完毕后设置可以减少刷新次数

获取当前tableView绑定的adapter

loadThreshold(number threshold)

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

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

获取当前预加载的阈值

设置内容偏移量

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

获取内容偏移量坐标

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

setScrollBeginCallback(function callback)

设置开始滚动的回调

setScrollingCallback(function callback)

设置滚动中的回调

setEndDraggingCallback(function callback)

设置拖拽结束后的回调

setStartDeceleratingCallback(function callback)

设置开始减速滚动回调

设置是否展示滚动指示器

⚠️ 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

获取当前是否正在刷新中

开始刷新动作

停止刷新动作

setRefreshingCallback(function callback)

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

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

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

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

获取是否正在上拉加载中

停止加载更多的动作

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

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

触发加载失败

滚动到指定位置

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

setLoadingCallback(function callback)

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

cellWithSectionRow(number section, number row)

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

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

设置是否可以滚动

i_bounces(boolean bounces)

设置是否开启弹性效果

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

获取是否开启弹性效果

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

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

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

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

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

Clone this wiki locally