我是Flutter的新手,非常渴望学习这项技术.我无法理解列表视图中收缩包装属性的工作.我无法理解颤动的文档.有人可以帮忙吗?提前致谢.
通常a ListView
(以及GridView
,PageView
和CustomScrollView
)尝试填充父元素给出的所有可用空间,即使列表项需要较少的空间也是如此.
使用shrinkWrap: true
,您可以更改此行为,以便ListView
仅占用所需的空间(当有更多项目时它仍将滚动).
看看这个例子:
import 'package:flutter/material.dart'; void main() => runApp(App()); class App extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(), body: Center( child: Container( margin: EdgeInsets.all(32), decoration: BoxDecoration(border: Border.all(color: Colors.red)), child: ListView( shrinkWrap: false, children:[ ListTile(title: Text('Item 1')), ListTile(title: Text('Item 2')), ListTile(title: Text('Item 3')), ], ), ), ), ), ); } }
用shrinkWrap: false
:
用shrinkWrap: true
:
您可以在AlertDialog
s中使用它:当只有几个项目时,使对话框尽可能小.当有很多项目时,填充屏幕高度并使列表可滚动: