ListView:
它的同名构造方法中有几个参数需要说明
shrinkWrap
: 当为 false 时,列表会在主轴方向上扩展到可占用的最大空间,反之列表占用的空间是其列表项高度之和,此时会耗费更多性能,每当列表项发生变化时,都会重新计算高度itemExtent
:如果主轴是垂直方向,则代表的是子项的高度,如果主轴为水平方向,则代表的是子项的长度。指定 该值能提升性能,每当列表项发生变化时,都不需要重新计算addAutomaticKeepAlives
:表示是否将列表项包裹在AutomaticKeepAlive
中。在一个懒加载列表里,如果子项需要保证自己在滑出视口时不被回收,就需要设置为 true,内保就会使用KeepAliveNotification
来保存其状态。如果子项要自己维护其KeepAlive
状态,此参数必须置为falseaddRepaintBoundaries
:表示是否将列表项包裹在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