ListView——線性排列的可滾動(dòng)列表小部件秽之。
如果為非null,則itemExtent強(qiáng)制子項(xiàng)在滾動(dòng)方向上具有給定范圍鹦倚。指定itemExtent比讓子項(xiàng)自己確定范圍更有效掀鹅,因?yàn)闈L動(dòng)機(jī)制可以利用子項(xiàng)的范圍預(yù)知來節(jié)省工作,例如當(dāng)滾動(dòng)位置發(fā)生劇烈變化時(shí)匣砖。
構(gòu)造ListView有四個(gè)選項(xiàng):
名稱 | 解釋 |
---|---|
List <Widget> | 默認(rèn)構(gòu)造函數(shù)采用子類的顯式猴鲫。此構(gòu)造函數(shù)適用于具有少量子項(xiàng)的列表視圖拂共,因?yàn)闃?gòu)造List需要為可能在列表視圖中顯示的每個(gè)子項(xiàng)執(zhí)行工作宜狐,而不僅僅是那些實(shí)際可見的子項(xiàng)抚恒。 |
ListView.builder | 它構(gòu)造函數(shù)采用IndexedWidgetBuilder它根據(jù)需要構(gòu)建子項(xiàng)。此構(gòu)造函數(shù)適用于具有大量(或無限)子項(xiàng)數(shù)的列表視圖回溺,因?yàn)閮H為實(shí)際可見的子項(xiàng)調(diào)用構(gòu)建器。 |
ListView.separated | 它的構(gòu)造函數(shù)有兩個(gè)IndexedWidgetBuilder 構(gòu)建器: itemBuilder 根據(jù)需要構(gòu)建子項(xiàng)车要,separatorBuilder 類似地構(gòu)建出現(xiàn)在子項(xiàng)之間的分隔子項(xiàng)。此構(gòu)造函數(shù)適用于具有固定數(shù)量子項(xiàng)的列表視圖绳姨。 |
ListView.custom | 構(gòu)造需要SliverChildDelegate提供自定義子項(xiàng)的其他方面的能力。例如飘庄,SliverChildDelegate可以控制用于估計(jì)實(shí)際上不可見的子項(xiàng)大小的算法。 |
要控制滾動(dòng)視圖的初始滾動(dòng)偏移跪削,請(qǐng)為 controller提供其ScrollController.initialScrollOffset屬性集。
ListView.builder
名稱 | 解釋 |
---|---|
Key key | key 值 |
Axis scrollDirection:Axis.vertical | 滾動(dòng)方向 |
bool reverse:false | 是否反向滾動(dòng) |
ScrollController controller | 滾動(dòng)控制器 |
bool primary | 是否是與父級(jí)PrimaryScrollController關(guān)聯(lián)的主滾動(dòng)視圖碾盐。如果primary為true,controller必須設(shè)置 |
ScrollPhysics physics | [物理滾動(dòng)方式] |
bool shrinkWrap:false | 滾動(dòng)方向上的滾動(dòng)視圖的范圍是否應(yīng)由所查看的內(nèi)容決定毫玖。 |
EdgeInsetsGeometry padding | 滾動(dòng)視圖與子項(xiàng)之間的內(nèi)邊距 |
double itemExtent | 子項(xiàng)范圍 |
@ required indexedWidgetBuilder itemBuilder | 位置構(gòu)建器 |
int itemCount | 子項(xiàng)的個(gè)數(shù) |
bool addAutomaticKeepAlives:true | 對(duì)應(yīng)于 SliverChildBuilderDelegate.addAutomaticKeepAlives屬性凌盯。即是否將每個(gè)子項(xiàng)包裝在AutomaticKeepAlive中驰怎。 |
bool addRepaintBoundaries:true | 對(duì)應(yīng)于 SliverChildBuilderDelegate.addRepaintBoundaries屬性二打。是否將每個(gè)子項(xiàng)包裝在RepaintBoundary中 |
bool addSemanticIndexes:true | 對(duì)應(yīng)于 SliverChildBuilderDelegate.addSemanticIndexes屬性县忌。是否將每個(gè)子項(xiàng)包裝在IndexedSemantics中症杏。 |
double cacheExtent | 視口在可見區(qū)域之前和之后有一個(gè)區(qū)域莲趣,用于緩存在用戶滾動(dòng)時(shí)即將變?yōu)榭梢姷捻?xiàng)目。 |
int semanticChildCount | 提供語義信息的孩子的數(shù)量 |