Flutter ListView 控件

ListView——线性排列的可滚动列表小部件。

如果为非null,则itemExtent强制子项在滚动方向上具有给定范围。指定itemExtent比让子项自己确定范围更有效,因为滚动机制可以利用子项的范围预知来节省工作,例如当滚动位置发生剧烈变化时。

构造ListView有四个选项:

名称 解释
List 默认构造函数采用子类的显式。此构造函数适用于具有少量子项的列表视图,因为构造List需要为可能在列表视图中显示的每个子项执行工作,而不仅仅是那些实际可见的子项。
ListView.builder 它构造函数采用IndexedWidgetBuilder它根据需要构建子项。此构造函数适用于具有大量(或无限)子项数的列表视图,因为仅为实际可见的子项调用构建器。
ListView.separated 它的构造函数有两个IndexedWidgetBuilder 构建器: itemBuilder根据需要构建子项,separatorBuilder 类似地构建出现在子项之间的分隔子项。此构造函数适用于具有固定数量子项的列表视图。
ListView.custom 构造需要SliverChildDelegate提供自定义子项的其他方面的能力。例如,SliverChildDelegate可以控制用于估计实际上不可见的子项大小的算法。

要控制滚动视图的初始滚动偏移,请为 controller提供其ScrollController.initialScrollOffset属性集。

ListView.builder

名称 解释
Key key key 值
Axis scrollDirection:Axis.vertical 滚动方向
bool reverse:false 是否反向滚动
ScrollController controller 滚动控制器
bool primary 是否是与父级PrimaryScrollController关联的主滚动视图。如果primary为true,controller必须设置
ScrollPhysics physics [物理滚动方式]
bool shrinkWrap:false 滚动方向上的滚动视图的范围是否应由所查看的内容决定。
EdgeInsetsGeometry padding 滚动视图与子项之间的内边距
double itemExtent 子项范围
@ required indexedWidgetBuilder itemBuilder 位置构建器
int itemCount 子项的个数
bool addAutomaticKeepAlives:true 对应于 SliverChildBuilderDelegate.addAutomaticKeepAlives属性。即是否将每个子项包装在AutomaticKeepAlive中。
bool addRepaintBoundaries:true 对应于 SliverChildBuilderDelegate.addRepaintBoundaries属性。是否将每个子项包装在RepaintBoundary中
bool addSemanticIndexes:true 对应于 SliverChildBuilderDelegate.addSemanticIndexes属性。是否将每个子项包装在IndexedSemantics中。
double cacheExtent 视口在可见区域之前和之后有一个区域,用于缓存在用户滚动时即将变为可见的项目。
int semanticChildCount 提供语义信息的孩子的数量

你可能感兴趣的:(Flutter ListView 控件)