
基础用法注意:无特殊说明,Flutter版本及Dart版本如下:
Flutter版本: 1.12.13+hotfix.5Dart版本: 2.7.0
在展示大量数据的时候我们第一会想到使用ListVIEw,如果你觉得ListVIEw比较单一、枯燥,你可以使用ListWheelScrollVIEw,ListWheelScrollVIEw和ListVIEw同源,但它的渲染效果类似于车轮(或者滚筒),它不是在平面上滑动,而是转动车轮,先来看一波效果:
ListWheelScrollVIEw的用法和ListVIEw基本相同,基础用法:
ListWheelScrollVIEw( itemExtent: 150,children: <Widget>[ ... ],);children 是子控件,itemExtent 指定每一个Item的高度。
当有大量数据的时候这种方式明显是不科学的,就像ListVIEw.builder一样,用法如下:
ListWheelScrollVIEw.useDelegate( itemExtent: 150,childDelegate: ListWheelChildBuilderDelegate( builder: (context,index) { return Container( margin: EdgeInsets.symmetric(vertical: 10,horizontal: 30),color: colors.primarIEs[index % 10],alignment: Alignment.center,child: Text('$index'),); },childCount: 100),);调整直径ListWheelScrollVIEw的渲染效果类似车轮,设置diameterRatio 调整其直径属性:
ListWheelScrollVIEw( itemExtent: 150,diameterRatio: 1,children: <Widget>[ ... ],)diameterRatio是圆筒直径和主轴渲染窗口的尺寸的比,默认值是2,如果是垂直方向,主轴渲染窗口的尺寸是ListWheelScrollVIEw的高。diameterRatio越小表示圆筒越圆。
perspective属性表示圆柱投影透视图,类似OpenGLES中透视投影,理解为看圆柱的距离,为0时表示从无限远处看,1表示从无限近处看,值的范围(0,0.01],注意是左开右闭区间,默认值是0.003,值越大,渲染效果越圆,用法如下:
ListWheelScrollVIEw( itemExtent: 150,perspective: 0.003,);offAxisFractionoffAxisFraction 属性表示车轮水平偏离中心的程度,用法如下:
ListWheelScrollVIEw( itemExtent: 150,offAxisFraction: 13,children: <Widget>[ ],);offAxisFraction 的值从0到2的效果:
通过useMagnifIEr和magnification属性实现放大镜效果,useMagnifIEr是否启用放大镜,magnification属性是放大倍率,用法如下:
ListWheelScrollVIEw( itemExtent: 150,useMagnifIEr: true,magnification: 1.5,);效果如下:
squeezesqueeze属性表示车轮上的子控件数量与在同等大小的平面列表上的子控件数量之比,例如,如果高度为100px,[itemExtent]为20px,那么5个项将放在一个等效的平面列表中。当squeeze为1时,RenderListWheelVIEwport中也会显示5个子控件。当squeeze为2时,RenderListWheelVIEwport中将显示10个子控件,默认值为1,用法如下:
ListWheelScrollVIEw( itemExtent: 150,squeeze: 1,);更多相关阅读:Flutter系列文章总览Flutter Widgets 之 Expanded和FlexibleFlutter Widgets 之 AnimatedList Flutter Widgets 之 SliverAppBar如果这篇文章有帮助到您,希望您来个“赞”并关注我的公众号,非常谢谢。 总结 以上是内存溢出为你收集整理的Flutter Widgets 之 ListWheelScrollView全部内容,希望文章能够帮你解决Flutter Widgets 之 ListWheelScrollView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)