【发布时间】:2021-05-29 22:25:57
【问题描述】:
这是我正在努力实现的目标的图片。
但是,我希望 TabBarView 中的两个列表都展开到屏幕底部。我现在可以让它工作的唯一方法是使用具有固定高度的容器。如果我使用MediaQuery.of(context).size.height,那么它会从页面底部展开,我会得到黄色黑色溢出的东西。
如果我将TabBarView 包装在Expanded 小部件中,而不是固定大小的Container,我会收到RenderFlex children have non-zero flex but incoming height constraints are unbounded. 错误。如果我将每个ListView 包装在Expanded 中(同时删除了固定高度的Container),我会收到Horizontal viewport was given unbounded height. 错误。知道接下来我应该尝试什么吗?
这是代码。
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
alignment: Alignment.centerLeft,
margin: const EdgeInsets.only(bottom: 15, top: 6),
padding: const EdgeInsets.only(left: 15),
child: const Text('Home'),
),
DefaultTabController(
length: 2,
initialIndex: 0,
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Container(
child: TabBar(
isScrollable: true,
tabs: [
Tab(text: 'Subscriptions'),
Tab(text: 'Recently Visited'),
],
),
),
Container(
height: 500,
decoration: BoxDecoration(
border: Border(
top: BorderSide(color: Colors.grey, width: 0.5))),
child: TabBarView(
children: <Widget>[
buildAList(),
buildAList()
],
),
),
],
),
),
],
),
),
);
}
Widget buildAList() {
return ListView(
scrollDirection: Axis.vertical,
shrinkWrap: true,
children: List<Widget>.generate(
100,
(i) => Text(
'Item $i',
style: TextStyle(fontSize: 20),
),
).toList(),
);
}
【问题讨论】:
标签: flutter