我是Flutter的新手,非常渴望学习这项技术.我无法理解列表视图中收缩包装属性的工作.我无法理解颤动的文档.有人可以帮忙吗?提前致谢.
bof*_*mer 26
通常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: <Widget>[
ListTile(title: Text('Item 1')),
ListTile(title: Text('Item 2')),
ListTile(title: Text('Item 3')),
],
),
),
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
用shrinkWrap: false:
用shrinkWrap: true:
您可以在AlertDialogs中使用它:当只有几个项目时,使对话框尽可能小.当有很多项目时,填充屏幕高度并使列表可滚动:
Dil*_*han 12
每个ScrollView(ListView、GridView、CustomScrollView)都有一个shrinkWrap属性来确定scrollDirection的大小。
所以ScrollView的scrollDirection可以有02种尺寸。
如果ScrollView的shrinkWrap: false,则ScrollView的scrollDirection大小与父级大小相同。
如果ScrollView的shrinkWrap:true,则ScrollView的scrollDirection大小与内容大小(所有子项大小)相同。
但是为什么ScrollView的scrollDirection需要在这02个尺寸之间切换???
原因是ScrollView的父级约束。
| 归档时间: |
|
| 查看次数: |
5174 次 |
| 最近记录: |