Flutter-将TabBarView放在滚动条中

问题描述

目前,我的代码是这样的。

   return SingleChildScrollView(
      child: Column(
        mainAxisSize: MainAxisSize.min,children: [
          if (_isLandscape)
            Row(
              children: [
                imageFrame,Column(
                  children: [
                    myBuyFunctionality,myTabBarView,],),)
          else
            Column(
              mainAxisSize: MainAxisSize.min,children: [
                imageFrame,SizedBox(
                  height: 20,myBuyFunctionality,Align(
            alignment: Alignment.bottomCenter,child: _isBuyNow ? buyNowButton : placeBidButton,

直到将myTabBarView放入树中,我的代码才能正常工作。它由2个这样的子窗口小部件组成。

var myTabBarView = TabBarView(
  controller: _tabController,children: [
    placeBidBody(),placeBidBody(),);

在placeBidBody中,我只有一个文本字段,一些文本和空格,而所有普通内容都包裹在一列中。

每当我将myTabBarView放在SingleChildScrollView中时,都会出现错误

Horizontal viewport was given unbounded height.

请让我知道我做错了什么,或者是否有更好的方法来组织所有这些内容

我还是比较陌生,所以非常感谢您的帮助。

解决方法

Wrap the parent widget(Column) with a limited height widget like SizedBox or 
AspectRatio. Then use the Expanded widget like this:

child: SizedBox(
height: 300.0,child: Column(
children: <Widget>[
   .
   .
   .
 Expanded(
 child: TabBarView(
 children: <Widget>[
]))]))

第二个解决方案是

 SizedBox.expand(
    child: TabBarView(),)