【发布时间】:2020-01-10 06:30:05
【问题描述】:
我正在尝试创建位于页面中间的 TabBar(描述小部件必须位于顶部)。
问题是我必须手动设置包含 TabBarView 的 Container 小部件的高度。如果我离开它没有这个高度,我会收到错误Horizontal viewport was given unbounded height.。
顶级小部件:
Widget build(BuildContext context) {
return Scaffold(
appBar: CustomAppBar(),
body: SingleChildScrollView(
child: Column(
children: <Widget>[Description(), Tabs()],
),
),
);
}
标签小部件:
class Tabs extends StatelessWidget {
final _tabs = [
Tab(
icon: Icon(Icons.menu),
text: 'Menu',
),
Tab(
icon: Icon(Icons.mode_comment),
text: 'Reviews',
)
];
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: _tabs.length,
child: Column(
children: <Widget>[
TabBar(
labelColor: PickColors.black,
indicatorSize: TabBarIndicatorSize.tab,
tabs: _tabs,
),
Container(
width: double.infinity,
height: 200, // I need to remove this and make height dynamic
child: TabBarView(
children: <Widget>[MenuTab(), ReviewsTab()],
),
),
],
));
}
}
由于标签内容是动态的,因此高度也是动态的。我不能在这里使用静态高度。
对于具有静态高度的容器是否有替代方案?如何使标签的高度动态化?
【问题讨论】:
-
@Eugene 没有帮助。还有其他想法吗?