Flutter组件-Table-表格组件

防采集标记:亢少军老师的课程和资料

Table效果图

在这里插入图片描述

示例代码

import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Table组件',
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Table组件'),
        ),
        body: Center(
          child: Container(
            //表格
            child: Table(
              //所有列宽
              columnWidths: const {
                //列宽
                0: FixedColumnWidth(100.0),
                1: FixedColumnWidth(200.0),
                2: FixedColumnWidth(50.0),
              },
              //表格边框样式
              border: TableBorder.all(
                color: Colors.green,
                width: 2.0,
                style: BorderStyle.solid,
              ),
              children: [
                TableRow(
                  //第一行样式 添加背景色
                  decoration: BoxDecoration(
                    color: Colors.grey,
                  ),
                  children: [
                    //增加行高
                    SizedBox(
                      height: 30.0,
                      child: Text('姓名',style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold),),
                    ),

                    Text('性别',style: TextStyle(fontWeight: FontWeight.bold),),
                    Text('年龄',style: TextStyle(fontWeight: FontWeight.bold),),
                  ]
                ),
                TableRow(
                    children: [
                      Text('张三'),
                      Text('男'),
                      Text('20'),
                    ]
                ),
                TableRow(
                    children: [
                      Text('小红'),
                      Text('女'),
                      Text('28'),
                    ]
                ),
                TableRow(
                    children: [
                      Text('李四'),
                      Text('男'),
                      Text('28'),
                    ]
                ),
                TableRow(
                    children: [
                      Text('机器猫'),
                      SizedBox(
                        width: 88.0,
                        height: 88.0,
                        child: Image.asset('assets/cat.jpeg'),
                      ),

                      Text('26'),
                    ]
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}



《Flutter技术入门与实战》 技术图书查看地址: http://product.dangdang.com/26485813.html
Flutter交流学习群:894109159
Flutter开源项目请关注: https://github.com/kangshaojun
Flutter视频教程:https://edu.youkuaiyun.com/lecturer/2436
在这里插入图片描述
在这里插入图片描述

### Flutter 表格组件使用方法 #### 创建基本表格 `Table` 是 Flutter 中用于创建表格布局的一个非常有用的组件[^1]。下面是一个简单的 `Table` 实现: ```dart Table( border: TableBorder.all(color: Colors.black), children: [ TableRow(children: [ Text('Header 1'), Text('Header 2') ]), TableRow(children: [ Text('Row 1 Cell 1'), Text('Row 1 Cell 2') ]), TableRow(children: [ Text('Row 2 Cell 1'), Text('Row 2 Cell 2') ]) ], ) ``` 此代码片段展示了如何设置边框颜色以及向表格内添加行和单元格的内容[^2]。 #### 设置列宽与垂直对齐方式 为了更好地控制表格外观,可以通过指定参数来调整各列宽度及单元格内的文字位置。例如,在上述基础上进一步定制化如下所示: ```dart Table( border: TableBorder.all(color: Colors.black), columnWidths: const <int, TableColumnWidth>{ 0: FixedColumnWidth(100.0), 1: FlexColumnWidth(), }, defaultVerticalAlignment: TableCellVerticalAlignment.middle, children: [...], // 同上省略部分不变 ) ``` 这里设定了第一列为固定宽度而第二列为弹性伸缩,并让所有单元格内容居中显示。 #### 处理超出屏幕范围的情况 当表格内容较多以至于超出了设备屏幕尺寸时,则需要考虑加入滚动功能以便于查看全部信息。此时可以利用 `SingleChildScrollView` 结合特定的方向属性包裹住整个表格结构从而实现这一需求[^4]。 ```dart SingleChildScrollView( scrollDirection: Axis.horizontal, child: DataTable( columns: [ DataColumn(label: Text('ID')), DataColumn(label: Text('Name')) ], rows: List<DataRow>.generate( 100, (index) => DataRow(cells: [ DataCell(Text('${index + 1}')), DataCell(Text('Item ${index + 1}')) ]), ), ) ) ``` 这段代码不仅实现了横向滚动效果还引入了更为专业的数据展示形式——`DataTable`,适用于处理大量列表型的数据集。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亢少军

致力于跨平台技术开发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值