Flutter 如何使用tabview制作容器&;listview占用底部的空间
我已经实现了由两个选项卡组成的选项卡布局,每个选项卡视图都有一个listview,带有tabview和listview的容器应该占据到底部的空间,现在我将静态值设置为400,因此listview最多只显示400,我需要列表视图显示到底部。你能帮我修一下吗Flutter 如何使用tabview制作容器&;listview占用底部的空间,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我已经实现了由两个选项卡组成的选项卡布局,每个选项卡视图都有一个listview,带有tabview和listview的容器应该占据到底部的空间,现在我将静态值设置为400,因此listview最多只显示400,我需要列表视图显示到底部。你能帮我修一下吗 Widget build(BuildContext context) { return Container( child: Column( children: <Widget>[
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.only(left:20.0,right:20.0),
child: Container(
color: Colors.white,
child: new TabBar(
controller: _controller,
labelColor: Colors.deepOrange,
tabs: [
new Tab(
icon: const Icon(Icons.description),
text: 'ABC',
),
new Tab(
icon: const Icon(Icons.assignment),
text: 'XYZ',
),
],
),
),
),
Padding(
padding: const EdgeInsets.only(left:20.0,right:20.0),
child: Container(
color: Colors.white,
height: 400.0,
child: new TabBarView(
controller: _controller,
children: <Widget>[
ListView(
children: <Widget>[
ListTile(
title: Text('Sun'),
),
ListTile(
title: Text('Moon'),
),
ListTile(
title: Text('Star'),
),
],
),
ListView(
children: <Widget>[
ListTile(
title: Text('Sun'),
),
ListTile(
title: Text('Moon'),
),
ListTile(
title: Text('Star'),
),
],
),
],
),
),
),
],
),
);
}
小部件构建(构建上下文){
返回容器(
子:列(
儿童:[
填充物(
填充:仅限常量边集(左:20.0,右:20.0),
子:容器(
颜色:颜色,白色,
孩子:新的TabBar(
控制器:_控制器,
labelColor:Colors.deepOrange,
选项卡:[
新标签(
图标:常量图标(图标.说明),
文本:“ABC”,
),
新标签(
图标:常量图标(Icons.assignment),
文本:“XYZ”,
),
],
),
),
),
填充物(
填充:仅限常量边集(左:20.0,右:20.0),
子:容器(
颜色:颜色,白色,
高度:400.0,
子项:新选项卡视图(
控制器:_控制器,
儿童:[
列表视图(
儿童:[
列表砖(
标题:文本(“Sun”),
),
列表砖(
标题:文本(“月亮”),
),
列表砖(
标题:文本(‘星’),
),
],
),
列表视图(
儿童:[
列表砖(
标题:文本(“Sun”),
),
列表砖(
标题:文本(“月亮”),
),
列表砖(
标题:文本(‘星’),
),
],
),
],
),
),
),
],
),
);
}
我使用了扩展的和Flex
小部件解决了这个问题
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.only(left:20.0,right:20.0),
child: Container(
color: Colors.white,
child: new TabBar(
controller: _controller,
labelColor: Colors.deepOrange,
tabs: [
new Tab(
icon: const Icon(Icons.description),
text: 'Current Openings',
),
new Tab(
icon: const Icon(Icons.assignment),
text: 'Applied Jobs',
),
],
),
),
),
flex: 1,
),
Expanded(
child: Padding(
padding: const EdgeInsets.only(left:20.0,right:20.0,bottom: 10.0),
child: Container(
color: Colors.white,
child: new TabBarView(
controller: _controller,
children: <Widget>[
ListView(
children: <Widget>[
ListTile(
title: Text('Sun'),
),
],
),
ListView(
children: <Widget>[
ListTile(
title: Text('Sun'),
),
],
),
],
),
),
),
flex: 9,
),
],
),
);
}
@覆盖
小部件构建(构建上下文){
返回容器(
子:列(
儿童:[
扩大(
孩子:填充(
填充:仅限常量边集(左:20.0,右:20.0),
子:容器(
颜色:颜色,白色,
孩子:新的TabBar(
控制器:_控制器,
labelColor:Colors.deepOrange,
选项卡:[
新标签(
图标:常量图标(图标.说明),
文本:“当前空缺”,
),
新标签(
图标:常量图标(Icons.assignment),
文本:“应用作业”,
),
],
),
),
),
弹性:1,
),
扩大(
孩子:填充(
填充:仅限常量边集(左:20.0,右:20.0,下:10.0),
子:容器(
颜色:颜色,白色,
子项:新选项卡视图(
控制器:_控制器,
儿童:[
列表视图(
儿童:[
列表砖(
标题:文本(“Sun”),
),
],
),
列表视图(
儿童:[
列表砖(
标题:文本(“Sun”),
),
],
),
],
),
),
),
弹性:9,
),
],
),
);
}