## list-view 在App中,基于recycle-view的list,才能实现长列表的资源自动回收,以保障列表加载很多项目时,屏幕外的资源被有效回收。list-view就是基于recycle-view的list组件。 每个list由1个父组件list-view及若干子组件list-item构成。仅有有限子组件可识别,[见下](#children-tags) list-view和scroll-view都是滚动组件,list适用于长列表场景,其他场景适用于scroll-view。 list-view支持通过子组件sticky-header处理吸顶的场景。 ### 自定义下拉刷新样式 list-view组件有默认的下拉刷新样式,如果想自定义,则需使用自定义下拉刷新。 1. 设置`refresher-default-style`属性为 none 不使用默认样式 2. 设置 list-item 定义自定义下拉刷新元素并声明为 `slot="refresher"`,需要设置刷新元素宽高信息否则可能无法正常显示! ```html ``` 3. 通过组件提供的refresherpulling、refresherrefresh、refresherrestore、refresherabort下拉刷新事件调整自定义下拉刷新元素!实现预期效果 **注意:** + 3.93版本开始支持 + 目前自定义下拉刷新元素不支持放在list-view的首个子元素位置上。可能无法正常显示 ### 嵌套模式 scroll-view开启嵌套模式后,list-view 可作为内层滚动视图与外层 scroll-view 实现嵌套滚动 设置内层 list-view 的 `associative-container` 属性为 "nested-scroll-view",开启内层 list-view 支持与外层 scroll-view 嵌套滚动 ## 示例代码 - 联网联表:[https://gitcode.net/dcloud/hello-uni-app-x/-/blob/master/pages/template/list-news/list-news.uvue](https://gitcode.net/dcloud/hello-uni-app-x/-/blob/master/pages/template/list-news/list-news.uvue) - 可左右滑动的多个列表:[https://gitcode.net/dcloud/hello-uni-app-x/-/tree/master/pages/template/long-list](https://gitcode.net/dcloud/hello-uni-app-x/-/tree/master/pages/template/long-list) ### Bug & Tips@tips - 如需im那样的倒序列表,App端可给组件style配置 `transform: rotate(180deg)` 来实现。注意与下拉刷新有冲突,此时应避免启用下拉刷新。 - 多列瀑布流是另外的组件,后续会提供 - list-view组件的overflow属性不支持配置visible - 一次性初始化太多列表项,因为创建大量vnode耗时,会导致列表初始化变慢。此时推荐使用扩展组件[uni-recycle-view](https://ext.dcloud.net.cn/plugin?id=17385)来解决初始化慢的问题,该组件内部会分批创建节点,自动实现节点复用。