Я пытаюсь создать TabBar, который будет расположен посередине страницы (виджет описания должен быть вверху).
Проблема в том, что мне нужно вручную установить высоту виджета «Контейнер», который содержит TabBarView. Если я оставлю его без этой высоты, я получу ошибку 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()],
),
),
],
));
}
}
Поскольку содержимое вкладок будет динамическим, высота также будет. Я не могу использовать здесь статическую высоту.
Есть ли альтернатива Контейнеру со статической высотой? Как сделать высоту вкладок динамической?