【发布时间】:2021-04-27 17:03:53
【问题描述】:
我有一个带有图像的Column,其下方是DefaultTabController。 TabBar 基本不显示选项卡,而是显示TabBarView 的子项。
这是错误:
对空值使用的空检查运算符相关的错误原因 小部件是 TabBar lib/.../screens/specific_launch.dart:132 触发异常时正在处理以下 RenderObject: RenderCustomPaint#83c8d relayoutBoundary=up10 RenderObject: RenderCustomPaint#83c8d relayoutBoundary=up10 父数据:offset=Offset(0.0, 0.0);弹性=空; fit=null(可以使用大小) 约束:BoxConstraints(0.0
这是代码:
return Scaffold(
appBar: AppBar(
title: Text(
'Launch',
style: GoogleFonts.poppins(fontWeight: FontWeight.w600),
),
actions: [
IconButton(icon: Icon(Icons.share_outlined), onPressed: () {})
],
),
body: Padding(
padding: EdgeInsets.only(
top: getHeight(context) / 30.0,
left: getWidth(context) / 30.0,
right: getWidth(context) / 30.0),
child: Column(
children: [
// ...first child
SizedBox(
width: getWidth(context),
height: getHeight(context),
child: DefaultTabController(
length: 3,
initialIndex: 0,
child: Scaffold(
appBar: AppBar(
bottom: TabBar(
tabs: [
Tab(
text: 'State',
),
Tab(
text: 'Mission',
),
Tab(
text: 'Rocket',
)
],
),
),
body: TabBarView(
children: [
Text(
'Tab 1',
),
Text('Tab 2'),
Text('Tab 3')
],
),
)),
)
],
),
));
这就是我想要达到的结果:
【问题讨论】:
-
你嵌套
Scaffold小部件的原因是什么? -
我看到了DefaultTabController的文档,应该有一个带有AppBar和body的Scaffold
-
删除 Sizedbox 并尝试使用 Expanded 小部件包装 DefaultTabController,如果 OutOfBoundary 导致问题。
-
不,还是一样
标签: flutter