问题描述
目前,我的代码是这样的。
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(),)