不熟悉颤振,也不知道如何在我的用户界面上设置大小限制,所以不会溢出。尝试用选项卡制作一个稍有不同的UI,在选项卡栏上方有一些组件。基本上我想要这样的东西:

--------------------
|     Container    |
--------------------
|      TabBar      |
--------------------
|                  |
|                  |
|    TabBarView    |
|                  |
|                  |
--------------------
|     Container    |
--------------------

问题是,我不知道如何让TabbarView占用剩余的空间。我的代码示例甚至不会运行,只是给了我这样一个错误:
I/flutter ( 3875): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
i/flutter(3875):在performResize()期间引发了以下断言:
I/Flutter(3875):水平视区被赋予无界高度。
i/flutter(3875):视区在十字轴中展开以填充其容器并约束其子对象以匹配
I/颤振(3875):它们在横轴上的范围。在这种情况下,水平视区被赋予无限量的
I/颤振(3875):要扩展的垂直空间。
  Widget build(BuildContext context) {
    List<Tab> myTabs = <Tab>[
      Tab(text: 'TAB 1'),
      Tab(text: 'TAB 2'),
      Tab(text: 'TAB 3'),
    ];

    Widget topBar = Container(
        padding: EdgeInsets.all(10),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceAround,
          children: <Widget>[
            Text("TEXT 1"),
            Text("TEXT 2"),
            Text("TEXT 3"),
          ],
        ));

    Widget bottomBar = Row(
      children: <Widget>[
        RaisedButton(child: Text("Cancel")),
        RaisedButton(child: Text("OK")),
      ],
    );

    return DefaultTabController(
      length: 3,
      child: Scaffold(
        appBar: AppBar(
          title: Text("Test"),
        ),
        body: Column(
          children: <Widget>[
            topBar,
            TabBar(
              tabs: myTabs,
            ),
            TabBarView(
              children: myTabs.map((Tab tab) {
                return Container(
                  color: Colors.red,
                  child: Text(tab.text)
                );
              }).toList(),
            ),
          ],
        ),
        bottomNavigationBar: bottomBar,
      ),
    );
  }

最佳答案

将TabbarView放入小部件

10-07 22:12