我正在尝试在包含其内容的列中放置PageView.builder,并在具有底部容器的列中进行布局。由于综合浏览量不知道其子级的大小,因此必须将其包装在“灵活”或“扩展”小部件中。灵活使孩子能够保持其大小,但使整个PageView都位于顶部。在它上面添加一个Expanded在PageView和底部容器之间留出空间,我不明白为什么。这是代码:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Expanded(
child: Container(),
),
Flexible(
child: PageView.builder(
itemCount: 6,
itemBuilder: (BuildContext context, int i) {
return Wrap(
children: <Widget>[
Container(
margin: EdgeInsets.all(10),
color: Colors.red,
height: 100,
width: MediaQuery.of(context).size.width,
),
],
);
},
),
),
Container(
color: Colors.blue,
height: 50,
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.all(10),
),
],
);
}
}
[当您使用包装小部件包装容器时,该容器折叠到最小大小,在您看来,容器底部的另一个空间实际上是包装小部件本身的剩余部分;
要使容器占据包装小部件的所有空间,您需要将高度从100更改为height: double.maxFinite,