我试图让Column在顶部有一个Container,然后是TabBar和TabBarView.但我得到了这个错误信息。
RenderBox was not laid out.RenderRepaintBoundary#b4962 relayoutB=up3 NEED RenderRepaintBoundary#b4962 relayoutBoundary=up3 NEEDS-PAINT 'package:fluttersrcrenderingbox.dart': 断言失败:第1687行 pos 12:'hasSize'相关的致错widget是Column。
这些是我的代码。
TabController _tabController;
@override
void initState() {
super.initState();
_tabController = new TabController(length: 2, vsync: this);
}
return SafeArea(
child: Scaffold(
backgroundColor: Color(0xFFec6647),
body: Container(
width: MediaQuery.of(context).size.width,
child: Column(
children: <Widget>[
Container(
height: MediaQuery.of(context).size.height * 0.125,
child: FittedBox(
child: Column(
children: <Widget>[
SizedBox(
height: MediaQuery.of(context).size.height * 0.03),
Text('TITLE TEXT'),
SizedBox(
height: MediaQuery.of(context).size.height * 0.03),
],
),
)),
TabBar(
controller: _tabController,
tabs: [
Tab(child: Text('Login')),
Tab(child: Text('Register')),
],
),
TabBarView(
controller: _tabController,
children: [
Icon(Icons.directions_car),
Icon(Icons.directions_transit),
],
),
],
),
),
),
);
回答者: SupposedlySam 工作原理,就是将TabBarView包裹在一个Expanded widget中。