位置: 编程技术 - 正文

ReactNative之FlatList的具体使用方法

编辑:rootadmin

推荐整理分享ReactNative之FlatList的具体使用方法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

之前使用的组件是ListView,当时要添加一个下拉刷新,上拉加载的功能,所以对ListView做了一些封装,但是后来看官方文档,不建议再使用ListView,因为效率问题,做过Android的朋友都知道,Android的ListView如果不自己处理一下,也是有效率问题的。所以官方又推出了FlatList,而且自带上拉下拉的功能。

功能简介

完全跨平台。 支持水平布局模式。 行组件显示或隐藏时可配置回调事件。 支持单独的头部组件。 支持单独的尾部组件。 支持自定义行间分隔线。 支持下拉刷新。 支持上拉加载。 支持跳转到指定行(ScrollToIndex)。

如果需要分组/类/区(section),请使用SectionList(这个我们会在之后的文章中介绍)

使用

FlatList如果只做简单使用也是很简单的,这里我们会分难以程度,逐渐介绍:

直接使用

可以看出跟之前的ListView很像,但是其中少了dataSource,这里,我们只需要传递数据,其它的都交给FlatList处理好了。

属性说明

ItemSeparatorComponent行与行之间的分隔线组件。不会出现在第一行之前和最后一行之后。在这里可以根据需要插入一个view ListEmptyComponent列表为空时渲染该组件。可以是React Component, 也可以是一个render函数, 或者渲染好的element。 ListFooterComponent尾部组件 ListHeaderComponent头部组件 columnWrapperStyle如果设置了多列布局(即将numColumns值设为大于1的整数),则可以额外指定此样式作用在每行容器上。 data为了简化起见,data属性目前只支持普通数组。如果需要使用其他特殊数据结构,例如immutable数组,请直接使用更底层的VirtualizedList组件。 extraData如果有除data以外的数据用在列表中(不论是用在renderItem还是Header或者Footer中),请在此属性中指定。同时此数据在修改时也需要先修改其引用地址(比如先复制到一个新的Object或者数组中),然后再修改其值,否则界面很可能不会刷新。 getItem获取每个Item getItemCount获取Item属相 getItemLayout是一个可选的优化,用于避免动态测量内容尺寸的开销,不过前提是你可以提前知道内容的高度。如果你的行高是固定的getItemLayout用起来就既高效又简单,类似下面这样:getItemLayout={(data, index) => ( {length: 行高, offset: 行高 * index, index} )}注意如果你指定了SeparatorComponent,请把分隔线的尺寸也考虑到offset的计算之中。 horizontal设置为true则变为水平布局模式。 initialNumToRender指定一开始渲染的元素数量,最好刚刚够填满一个屏幕,这样保证了用最短的时间给用户呈现可见的内容。注意这第一批次渲染的元素不会在滑动过程中被卸载,这样是为了保证用户执行返回顶部的操作时,不需要重新渲染首批元素。 initialScrollIndex指定渲染开始的item index keyExtractor此函数用于为给定的item生成一个不重复的key。Key的作用是使React能够区分同类元素的不同个体,以便在刷新时能够确定其变化的位置,减少重新渲染的开销。若不指定此函数,则默认抽取item.key作为key值。若item.key也不存在,则使用数组下标。 legacyImplementation设置为true则使用旧的ListView的实现。 numColumns多列布局只能在非水平模式下使用,即必须是horizontal={false}。此时组件内元素会从左到右从上到下按Z字形排列,类似启用了flexWrap的布局。组件内元素必须是等高的——暂时还无法支持瀑布流布局。 onEndReached当列表被滚动到距离内容最底部不足onEndReachedThreshold的距离时调用。 onEndReachedThreshold决定当距离内容最底部还有多远时触发onEndReached回调。注意此参数是一个比值而非像素单位。比如,0.5表示距离内容最底部的距离为当前列表可见长度的一半时触发。 onRefresh如果设置了此选项,则会在列表头部添加一个标准的RefreshControl控件,以便实现“下拉刷新”的功能。同时你需要正确设置refreshing属性。 onViewableItemsChanged在可见行元素变化时调用。可见范围和变化频率等参数的配置请设置viewabilityconfig属性 refreshing在等待加载新数据时将此属性设为true,列表就会显示出一个正在加载的符号。 renderItem根据行数据data,渲染每一行的组件。这个参照下面的demo viewabilityConfig请参考ViewabilityHelper 的源码来了解具体的配置。

方法

ReactNative之FlatList的具体使用方法

scrollToEnd滚动到底部。如果不设置getItemLayout属性的话,可能会比较卡。

scrollToIndex滚动到指定index的item如果不设置getItemLayout属性的话,无法跳转到当前可视区域以外的位置。

scrollToItem滚动到指定item,如果不设置getItemLayout属性的话,可能会比较卡。

scrollToOffset滚动指定距离

Demo:

效果图:

进阶使用

在这里我准备了一份代码示例:

运行效果如下:

总结

总体来说Flatlist还是比ListView用起来方便的,而且提供的功能更多。

标签: ReactNative之FlatList的具体使用方法

本文链接地址:https://www.jiuchutong.com/biancheng/373290.html 转载请保留说明!

上一篇:ReactNative 之FlatList使用及踩坑封装总结

下一篇:JS组件系列之Gojs组件 前端图形化插件之利器(js组件是什么)

  • 税务师考试各科老师推荐
  • 从税法经济法角度分析冰冰偷漏税事件?
  • 即征即退的增值税属于政府补助
  • 超过缴款期限缴纳税款
  • 技术开发收入免征所得税吗
  • 小规模纳税人未开票收入填在哪里
  • 无形资产计税基础怎么算
  • 更换电脑后个税信息如何导入
  • 零申报企业年报资产总额怎么填
  • 虚开发票企业所得税怎么补缴税?
  • 外购商品计入
  • 经纪人佣金计入什么科目
  • 房地产开发企业预缴增值税
  • 非独立核算分公司个税怎么申报
  • 小规模附征税减半吗亲
  • 停车场企业所得税税率
  • 滞留发票产生的原因主要包括哪些?
  • 期交保费资金占用年限计算公式
  • 准备金税前扣除什么意思
  • 外币折算差额计入什么科目
  • 公户批量扣费是啥意思
  • 滞纳金入什么会计科目
  • 服务,不动产和无形资产扣除项目明细
  • 金融企业哪些呆账损失可以在税前扣除?
  • 工商年报的纳税总额怎么填写
  • 用盈余公积弥补职工福利费是什么类型
  • 华为matex3爆料
  • 如何降低融资成本率
  • 车辆维修的增值税怎么算
  • Linux怎么使用Windows的软件
  • php apc
  • 笔记本thinkbook14
  • 公司已开票给客户,但客户未打款怎么办?
  • 广告费属于什么费用部门
  • 员工工伤一次性赔偿会计分录
  • 进项税额转出会造成增值税应纳税额
  • Win11/10 Surface App 新增支持自动检测 Surface Slim Pen 1 手写笔
  • 企业进行投资的类型有哪些
  • php最安全的登录功能
  • 社保缴费基数差1000一般差多少?
  • 现金流量表补充资料怎么理解
  • 购买其他权益工具
  • 赫尔辛基哈加赫利亚大学
  • GANs系列:CGAN(条件GAN)原理简介以及项目代码实现
  • 红字写信是什么意思
  • 自收自支是由主管部门拨款吗
  • 累计折旧是当月提还是下月提
  • 常见的垃圾回收器有哪些
  • 保险费计入固定资产原值吗
  • 苗木免税只能开普票
  • 个人利息收入怎么计算个税
  • access2010加密解密数据库时
  • sqlserver获取uuid
  • 物业管理费专票税率是多少
  • 金税四期的基本理念
  • 经营性应付项目包括哪些内容
  • 食堂辅助账的账务处理
  • 行政事业单位会计准则
  • 银行转存款怎么办
  • 预付款开了增值税专票怎么办
  • 多交税款账务怎么处理
  • 存货毁损损失应计入的科目是
  • 什么是权益性投资企业
  • ubuntu桌面右键
  • win8系统崩溃怎么办
  • winxp软件双击后没有反应
  • micc是什么意思中文
  • centos bbrplus
  • nb3是什么文件
  • windows 10预览版
  • 深度技术的系统好不好
  • javascriptz
  • 做网页需要域名吗
  • js函数重名
  • python批量执行命令
  • 广州地税电子税票查询
  • 境外取得收入申报期限
  • 为什么买的酒精有香味
  • 公司买水果怎么开票
  • 季度申报忘了报怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设