TabBarView 内列在 Flutter 中给我错误

rob*_*s95 6 flutter flutter-layout

我试图让 Column 的顶部有一个 Container,然后是 TabBar 和 TabBarView。但我收到此错误消息:

RenderBox 未布局: RenderRepaintBoundary#b4962 relayoutBoundary=up3 NEEDS-PAINT 'package:flutter/src/rendering/box.dart': 断言失败:第 1687 行 pos 12: 'hasSize' 相关导致错误的小部件是 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),
                ],
              ),
            ],
          ),
        ),
      ),
    );
Run Code Online (Sandbox Code Playgroud)

rob*_*s95 4

ShouldedlySam 的回答是有效的,即将 TabBarView 包装在 Expanded 小部件中。