Flutter组件-Table-表格组件

本文详细介绍了在Flutter框架中如何使用Table组件来创建表格,并展示了如何设置列宽、表格边框样式以及添加背景色和图片等高级用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://i-blog.csdnimg.cn/blog_migrate/4b09c0c620e3641a731244c0946cc4dc.jpeg




import 'package:flutter/material.dart';

void main() => runApp(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(100.0),
                2: FixedColumnWidth(50.0),
              },
                //表格边框样式
            border: TableBorder.all(
                color: Colors.black,
                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('24'),

    ]
  ),

],
            ),
          ),
        ),
      ),
    );
  }

}

### 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`,适用于处理大量列表型的数据集。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值