可编辑

该库允许您轻松创建可编辑的表格和电子表格,可以通过提供初始的行和列数来显示空表,也可以使用预定义的行和列数据集。

特点

  • 保存已编辑的行
  • 保存已编辑的单元格
  • 自定义单元格数据
  • 添加空行
  • 创建空表
  • 可自定义的保存按钮
  • 自定义表头
  • 斑马纹 - 条纹表
  • 样式表边框

入门

在您的Flutter项目的pubspec.yaml文件中,添加以下内容
依赖

dependencies:
  ...
  editable: "^1.1.1"

在您的库中添加以下导入

import 'package:editable/editable.dart';

API

创建表

要创建一个新表,请使用Editable()小部件类,并按如下方式提供表数据属性

  • column:对象数组,例如
    示例

    List cols = [
      {"title":'Name', 'index': 1, 'key':'name'},
      {"title":'Date', 'index': 2, 'key':'date'},
      {"title":'Month', 'index': 3, 'key':'month'},
      {"title":'Status', 'index': 4, 'key':'status'},
    ]; 
    

    [title]是列标题

    [index]代表每列的唯一ID,类型为[int]

    [key]是标识符,最好不带空格和特殊字符

  • rows:对象数组,其中每个对象的key代表一列[key];
    示例

    List rows = [
        {"name": 'James Joe', "date":'23/09/2020',"month":'June',"status":'completed'},
        {"date":'12/4/2020',"month":'March',"name": 'Daniel Paul', "status":'new'},
      ];
    

    每个对象的不必按与其列相同的顺序排列

  • rowCount:要生成的行数的整数值:如果提供了行数据,则为可选

  • columnCount:要生成的列数的整数值:如果提供了列数据,则为可选

  • columnRatio:每列占据屏幕宽度的比例。这对于缩小和扩展表宽度很有用
    示例

      columnRation: 0.2 //sets each column to occupy 20 percent of screen width
    

自定义

  • borderColor:表边框的颜色

  • borderWidth:表边框的宽度

  • tdPaddingLeft:表数据单元格左填充

  • tdPaddingTop:表数据单元格顶部填充

  • tdPaddingRight:表数据单元格右填充;

  • tdPaddingBottom:表数据单元格底部填充;

  • tdAlignment:对齐表数据;

  • tdStyle:样式化表数据;

  • thPaddingLeft:表头单元格左填充;

  • thPaddingTop:表头单元格顶部填充;

  • thPaddingRight:表头单元格右填充;

  • thPaddingBottom:表头单元格底部填充;

  • trHeight:表行高度,不能小于40.0;

  • thWeight:表头字重;

  • thSize:表头字体大小;

  • showSaveIcon:切换保存按钮,如果为[true],则显示一个保存行的图标,
    并在右侧添加一列

  • saveIcon:用于保存行数据的图标,例如
    dart saveIcon : Icons.add

  • saveIconColor:保存图标的颜色

  • saveIconSize:保存图标的大小

  • showCreateButton:显示一个添加新行的按钮,点击时执行

  • stripeColor1:如果设置为true,则第一行的交替颜色

  • stripeColor2:如果设置为true,则第二行的交替颜色;

  • zebraStripe:启用斑马纹,默认为false
    // 如果启用了zebraStripe,则可以设置[stripeColor1]和[stripeColor2]的颜色

  • createButtonAlign:对齐添加新行的按钮;

  • createButtonIcon:创建新行按钮中显示的图标;

  • createButtonColor:创建新行按钮的颜色;

  • createButtonShape:创建新行按钮的边框形状
    createButtonShape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8) )

  • createButtonLabel:创建新行按钮的标签

保存方法

  • onSubmitted:当按下回车键时(桌面用户),或在移动设备上完成编辑时,
    会触发[onSubmitted]回调,
    它返回已编辑的单元格数据

  • onRowSaved:当按下[saveButton]时,会触发[onRowSaved]回调。
    仅返回已编辑行的值,否则返回字符串['no edit']

截图

带有数据的可编辑表(斑马纹)

96218374-85cb8100-0f7c-11eb-9bd3-f3154073d747

空电子表格(斑马纹)

96218512-caefb300-0f7c-11eb-93e1-77fd66f7cc2b

空电子表格(无条纹)

96218567-e490fa80-0f7c-11eb-8df1-03aebd4b4ee4

带保存图标的表

95015531-4da37480-0645-11eb-965a-f3d3507c18da

路线图

以下是该项目下一版本的近期工作

  • 可排序列
  • 执行列之间的数学运算(进行中)
  • 搜索行数据(进行中)
  • 将表导出为不同格式

贡献

我强烈鼓励社区积极参与,进一步改进这个
库。您可以修复任何已报告的错误,提出或实现新的
功能,编写测试等。

以下是一些需要记住的要点:

  • 在创建新问题之前,请检查开放的问题;
  • 通过修复任何现有
    错误来帮助我减少开放问题的数量;
  • 查看路线图,看看您是否可以帮助实现任何新
    功能;
  • 您可以通过为该
    库编写单元测试和集成测试来做出贡献;
  • 如果您有任何与该库目标一致的新想法,
    请随时提出功能请求并进行讨论。

GitHub

https://github.com/godilite/editable