Flutter表格展示插件table的使用

发布于 1周前 作者 wuwangju 来自 Flutter

Flutter表格展示插件table的使用

安装

首先,在你的pubspec.yaml文件中添加以下依赖:

dependencies:
  table: any

然后运行以下命令以获取依赖包:

flutter pub get

使用示例

在Flutter中使用table插件可以非常方便地创建表格。下面是一个简单的例子来展示如何使用这个插件。

示例代码

import 'package:flutter/material.dart';
import 'package:table/table.dart'; // 导入table插件

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Table插件示例'),
        ),
        body: TableExample(),
      ),
    );
  }
}

class TableExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        width: 300,
        height: 200,
        child: Table(
          border: TableBorder.all(), // 添加边框
          children: [
            TableRow(children: [
              TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('姓名'))),
              TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('年龄'))),
              TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('职业')))
            ]),
            TableRow(children: [
              TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('张三'))),
              TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('25'))),
              TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('工程师')))
            ]),
            TableRow(children: [
              TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('李四'))),
              TableCell(child: Padding: EdgeInsets.all(8.0), child: Text('30')),
              TableCell(child: Padding: EdgeInsets.all(8.0), child: Text('教师'))
            ]),
          ],
        ),
      ),
    );
  }
}

代码解释

  1. 导入包

    import 'package:table/table.dart';
    

    这行代码导入了table插件。

  2. 创建应用主入口

    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              title: Text('Table插件示例'),
            ),
            body: TableExample(),
          ),
        );
      }
    }
    

    在这个部分,我们创建了一个简单的Flutter应用,并设置了应用的基本布局。

  3. 定义表格组件

    class TableExample extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Center(
          child: Container(
            width: 300,
            height: 200,
            child: Table(
              border: TableBorder.all(), // 添加边框
              children: [
                TableRow(children: [
                  TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('姓名'))),
                  TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('年龄'))),
                  TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('职业')))
                ]),
                TableRow(children: [
                  TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('张三'))),
                  TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('25'))),
                  TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('工程师')))
                ]),
                TableRow(children: [
                  TableCell(child: Padding(padding: EdgeInsets.all(8.0), child: Text('李四'))),
                  TableCell(child: Padding: EdgeInsets.all(8.0), child: Text('30')),
                  TableCell(child: Padding: EdgeInsets.all(8.0), child: Text('教师'))
                ]),
              ],
            ),
          ),
        );
      }
    }
    

更多关于Flutter表格展示插件table的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter表格展示插件table的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,table 小部件是展示表格数据的一个基本工具。虽然Flutter没有一个专门的table_plugin,但你可以使用内置的Table小部件来创建和展示表格数据。以下是一个使用Table小部件的简单示例代码:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Table Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  final List<List<String>> data = [
    ['Name', 'Age', 'Occupation'],
    ['Alice', '30', 'Engineer'],
    ['Bob', '25', 'Designer'],
    ['Charlie', '35', 'Teacher'],
  ];

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Table Example'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(8.0),
        child: Table(
          // Define column widths. In this case, let's use fixed widths.
          columnWidths: {
            0: FlexColumnWidth(1.0), // First column takes 1/3 of the space
            1: FlexColumnWidth(1.0), // Second column takes 1/3 of the space
            2: FlexColumnWidth(1.0), // Third column takes 1/3 of the space
          },
          // Define border for each cell
          defaultBorder: TableBorder(
            side: BorderSide(color: Colors.black),
            horizontalInside: BorderSide(color: Colors.black),
            verticalInside: BorderSide(color: Colors.black),
          ),
          // Define the table rows. Each row is a List of cells.
          children: data.map((row) {
            return TableRow(
              children: row.map((cellData) {
                // You can style individual cells here if needed
                return Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: Text(cellData),
                );
              }).toList(),
            );
          }).toList(),
        ),
      ),
    );
  }
}

代码解释

  1. 导入必要的包

    import 'package:flutter/material.dart';
    
  2. 定义主应用

    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      [@override](/user/override)
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Table Example',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(),
        );
      }
    }
    
  3. 创建数据列表

    final List<List<String>> data = [
      ['Name', 'Age', 'Occupation'],
      ['Alice', '30', 'Engineer'],
      ['Bob', '25', 'Designer'],
      ['Charlie', '35', 'Teacher'],
    ];
    
  4. 构建表格

    [@override](/user/override)
    Widget build(BuildContext context) {
      return Scaffold(
        appBar: AppBar(
          title: Text('Flutter Table Example'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(8.0),
          child: Table(
            columnWidths: {
              0: FlexColumnWidth(1.0),
              1: FlexColumnWidth(1.0),
              2: FlexColumnWidth(1.0),
            },
            defaultBorder: TableBorder(
              side: BorderSide(color: Colors.black),
              horizontalInside: BorderSide(color: Colors.black),
              verticalInside: BorderSide(color: Colors.black),
            ),
            children: data.map((row) {
              return TableRow(
                children: row.map((cellData) {
                  return Padding(
                    padding: const EdgeInsets.all(8.0),
                    child: Text(cellData),
                  );
                }).toList(),
              );
            }).toList(),
          ),
        ),
      );
    }
    

这个示例展示了如何使用Flutter的Table小部件来创建一个简单的表格。你可以根据需要调整列宽、边框样式和单元格内容。如果你需要更复杂的功能,比如排序、分页等,可能需要考虑使用第三方库或者自定义实现这些功能。

回到顶部