Flutter ListView[列表组件]

ListView:

它的同名构造方法中有几个参数需要说明

  • shrinkWrap: 当为 false 时,列表会在主轴方向上扩展到可占用的最大空间,反之列表占用的空间是其列表项高度之和,此时会耗费更多性能,每当列表项发生变化时,都会重新计算高度
  • itemExtent :如果主轴是垂直方向,则代表的是子项的高度,如果主轴为水平方向,则代表的是子项的长度。指定 该值能提升性能,每当列表项发生变化时,都不需要重新计算
  • addAutomaticKeepAlives :表示是否将列表项包裹在AutomaticKeepAlive中。在一个懒加载列表里,如果子项需要保证自己在滑出视口时不被回收,就需要设置为 true,内保就会使用KeepAliveNotification来保存其状态。如果子项要自己维护其KeepAlive 状态,此参数必须置为false
  • addRepaintBoundaries :表示是否将列表项包裹在RepaintBoundary中。为 true 时,可以避免列表项重绘,提高性能。但当列表项重绘的开销非常小(如一个颜色块,或者一个较短的文本)时,不添加 RepaintBoundary 反而会更高效

ListView配套使用的,还有一个ListTile控件,用于列表的子项,当然也可以单独使用

属性名 类型 简述
leading Widget 列表项左侧的图标
title Widget 标题,通常放置文本控件
subtitle Widget 副标题
trailing Widget 列表项右侧的图标
isThreeLine bool 内容是否可显示3行。为true,副标题最多显示2行
dense bool 是否密集显示。为true时,内容及图标将会变小,显示更紧密
contentPadding EdgeInsetsGeometry 内边距
enabled bool 设为 false,可禁止点击事件
onTap GestureTapCallback 单击事件回调
onLongPress GestureLongPressCallback 长按事件回调
selected bool 是否选中。为true时,文本和图标的颜色变为主题的主色
THE END
喜欢就支持一下吧
点赞12 分享