重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
ListView的基础创建使用有三种方式:
创新互联主营迎泽网站建设的网络公司,主营网站建设方案,APP应用开发,迎泽h5小程序制作搭建,迎泽网站营销推广欢迎迎泽等地区企业咨询
通过默认构造函数来创建列表,应用场景 = 短列表
这种方式创建的列表存在一个问题:对于那些长列表或者需要较昂贵渲染开销的子组件,即使还没有出现在屏幕中但仍然会被ListView所创建,这将是一项较大的开销,使用不当可能引起性能问题甚至卡顿。
长列表
列表子项之间需要分割线
ListView的进阶使用主要包括:下拉刷新 上拉加载
在Flutter中,ListView结合RefreshIndicator组件实现下拉刷新
通过包裹一层RefreshIndicator,自定义onRefresh回调方法实现
方式有两种:
通过ListView.controller属性可以判断ListView是否滑动到了底部,再进行上拉加载
NotificationListener是一个Widget,可监听子Widget发出的Notification
ListView在滑动时中会发出ScrollNotification类型的通知,可通过监听该通知得到ListView的滑动状态,判断是否滑动到了底部,从而进行上拉加载
NotificationListener有一个onNotification属性,定义了监听的回调方法,通过它来处理加载更多逻辑
不定期分享关于 安卓开发 的干货,追求 短、平、快 ,但 却不缺深度 。
上一篇介绍Banner的开发。在大多数应用场景中。banner和ListView通常是一起显示的。 并且能够共同滑动。例如如下界面:
要实现上图的界面,直接想到是ListView添加Header。但在Flutter中,ListView 组件相当于RecyclerView,所以添加Header也用RecyclerView的原理:
封装ListPage组件,list_page.dart
使用及测试:异步加载网络数据使用
错误1:Vertical viewport was given unbounded height.
设置 shrinkWrap = true
ListView 或 GridView 时发现有两个属性。
shrinkWrap 常用于内容大小不确定情况,如果滚动视图( ListView/GridView/ScrollView 等)没有收缩包装,则滚动视图将扩展到允许的最大大小。如果是无界约束,则 shrinkWrap 必须为 true 。
primary 如果为 true ,即使滚动视图没有足够的内容来支撑滚动,滚动视图也是可滚动的。否则,默认为 false 情况下,只有具有足够内容的用户才能滚动视图。
1、数值型-Number
2、布尔型-Boolean
3、字符串-String
4、列表-List
5、键值对-Map
1、int: 整数,数值
2、double: 浮点型数值,带有小数点
运算符:+,-,*,/,~/(取整),%;
字符串操作
运算符:+,*,==,[]
插值表达式:${expression}
常用属性:length,isEmpty(是否为空)
Map 对象