在Flutter中,列内的TabBarView给我带来了错误。

问题描述 投票:0回答:1

我试图让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),
                ],
              ),
            ],
          ),
        ),
      ),
    );
flutter flutter-layout
1个回答
0
投票

回答者: SupposedlySam 工作原理,就是将TabBarView包裹在一个Expanded widget中。

© www.soinside.com 2019 - 2024. All rights reserved.