Flutter 颤振分页数据表填充高度
我正在尝试创建Flutter 颤振分页数据表填充高度,flutter,Flutter,我正在尝试创建分页数据表,以填充高度。然而,无论我在尝试什么,似乎都没有任何效果。我怎样才能让桌子填满这个高度?另外,如何更改分页背景色 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(state.department.name), ), body: Column( children: <Widget
分页数据表
,以填充高度。然而,无论我在尝试什么,似乎都没有任何效果。我怎样才能让桌子填满这个高度?另外,如何更改分页背景色
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(state.department.name),
),
body: Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
TextButton(onPressed: () {}, child: Text('TEst 1')),
TextButton(onPressed: () {}, child: Text('TEst 1'))
],
),
Container(
child: PaginatedDataTable(
showCheckboxColumn: false,
headingRowHeight: 35,
columns: const <DataColumn>[
DataColumn(
label: Text(
'First Name',
style: TextStyle(fontStyle: FontStyle.italic),
),
),
DataColumn(
label: Text(
'Last Name',
style: TextStyle(fontStyle: FontStyle.italic),
),
),
DataColumn(
label: Text(
'Id',
style: TextStyle(fontStyle: FontStyle.italic),
),
),
DataColumn(
label: Text(
'Time',
style: TextStyle(fontStyle: FontStyle.italic),
),
),
DataColumn(
label: Text(
'Operator',
style: TextStyle(fontStyle: FontStyle.italic),
),
),
],
source: tableSource
),
)
],
),
);
}
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(州、部门、名称),
),
正文:专栏(
儿童:[
划船(
mainAxisAlignment:mainAxisAlignment.space,
儿童:[
Text按钮(按下时:(){},子项:Text('test1')),
Text按钮(按下时:(){},子项:Text('test1'))
],
),
容器(
子项:分页可编辑(
showCheckboxColumn:false,
头向生长高度:35,
列:常量[
数据列(
标签:文本(
“名字”,
样式:TextStyle(fontStyle:fontStyle.italic),
),
),
数据列(
标签:文本(
“姓”,
样式:TextStyle(fontStyle:fontStyle.italic),
),
),
数据列(
标签:文本(
“Id”,
样式:TextStyle(fontStyle:fontStyle.italic),
),
),
数据列(
标签:文本(
“时间”,
样式:TextStyle(fontStyle:fontStyle.italic),
),
),
数据列(
标签:文本(
“操作员”,
样式:TextStyle(fontStyle:fontStyle.italic),
),
),
],
来源:tableSource
),
)
],
),
);
}
使用Container
时,容器本身会填充高度,但分页的数据表不会。解决方案
static const double topViewHeight = 50.0;
static const double paginateDataTableHeaderRowHeight = 35.0;
static const double pagerWidgetHeight = 56;
static const double paginateDataTableRowHeight = kMinInteractiveDimension;
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Hello'),
),
body: LayoutBuilder(
builder: (context, constraint) {
return Column(
children: <Widget>[
Container(
width: constraint.maxWidth,
height: topViewHeight,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
TextButton(onPressed: () {}, child: Text('TEst 1')),
TextButton(onPressed: () {}, child: Text('TEst 1'))
],
),
),
Container(
color: Colors.greenAccent,
height: constraint.maxHeight - topViewHeight,
child: Center(
child: PaginatedDataTable(
showCheckboxColumn: false,
headingRowHeight: paginateDataTableHeaderRowHeight,
rowsPerPage: ((constraint.maxHeight -
topViewHeight -
paginateDataTableHeaderRowHeight -
pagerWidgetHeight) ~/
paginateDataTableRowHeight)
.toInt(),
columns: const <DataColumn>[
DataColumn(
label: Text(
'First Name',
style: TextStyle(fontStyle: FontStyle.italic),
),
),
],
source: TableSource()),
))
],
);
},
),
);
}
static const double topViewHeight=50.0;
静态常数双分页DataTableHeaderRowheight=35.0;
静态常数双页WidgetHeight=56;
静态常量double paginateDataTableRowHeight=KminiInteractiveDimension;
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:Text('Hello'),
),
正文:布局生成器(
生成器:(上下文,约束){
返回列(
儿童:[
容器(
宽度:constraint.maxWidth,
高度:TopView高度,
孩子:排(
mainAxisAlignment:mainAxisAlignment.space,
儿童:[
Text按钮(按下时:(){},子项:Text('test1')),
Text按钮(按下时:(){},子项:Text('test1'))
],
),
),
容器(
颜色:Colors.greenAccent,
高度:constraint.maxHeight-topViewHeight,
儿童:中心(
子项:分页可编辑(
showCheckboxColumn:false,
头向生长高度:分页数据表头向生长高度,
rowsPerPage:((constraint.maxHeight)-
俯视高度-
paginateDataTableHeaderRowHeight-
pagerWidgetHeight)~/
分页(数据表行高)
.toInt(),
列:常量[
数据列(
标签:文本(
“名字”,
样式:TextStyle(fontStyle:fontStyle.italic),
),
),
],
来源:TableSource()),
))
],
);
},
),
);
}
需要知道
注:
如果你的意思是让你的桌子伸展以填满高度,我认为你除了计算高度之外没有其他解决方案,请看!谢谢我唯一添加的内容也是将
width:constraint.maxWidth
添加到包含数据表本身的容器中,因为它没有填充整个宽度。ok fine@Expressingx