搜索插件、代码仓与 APP 分类

pluto_grid 封面
插件详情v8.1.0

pluto_grid

PlutoGrid 是一个可以在桌面和网页上通过键盘控制的数据网格。当然,它在 Android 和 IOS 上也能很好地工作。(DataGrid、DataTable、数据网格、数据表、固定)

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
3.2万
喜欢数
1080
Pub 分数
160

安装插件

flutter pub add pluto_grid

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

PlutoGrid 是一个功能强大的 Flutter 数据网格组件,支持桌面和 Web 平台的键盘导航,同时在移动设备上保持完整功能。它提供了一个响应式、可自定义的表格界面,非常适合显示结构化数据,具备固定表头、排序和筛选等功能。专为寻求跨平台可访问且交互性强的数据展示解决方案的开发者设计,PlutoGrid 通过直观的控件和流畅的性能提升用户体验。

适合场景

  • 在Web应用程序中显示大型数据集
  • 为桌面用户创建可访问的数据表格
  • 使用交互式网格构建管理员仪表板
  • 在数据表中实现固定表头
  • 在数据网格中启用键盘导航

主要特点

  • 桌面和网页上的键盘导航支持
  • 粘性标题和列
  • 跨平台兼容性(Android、iOS、Web、macOS、Windows、Linux)
  • 可自定义的单元格渲染
  • 内置排序和筛选
  • 适用于所有屏幕尺寸的响应式设计

适合对象

  • 开发数据密集型网络应用的开发者
  • 优先考虑可访问性和键盘交互的团队
  • 需要灵活表格组件的UI设计师
  • 需要粘性标题和高级数据处理的应用程序
  • 针对多个平台且具有统一用户界面的项目

使用建议

  • 可能需要额外的样式来适应复杂布局
  • 使用超大数据集时需要监控性能
  • 与成熟的替代方案相比,文档有限
  • 键盘导航可能需要为小众用例进行自定义
  • 未针对高频数据更新进行优化

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

PlutoGrid for flutter - v8.1.0

Awesome Flutter codecov License: MIT


PlutoGrid is a DataGrid that can be operated with the keyboard in various situations such as moving cells.
It is developed with priority on the web and desktop.
Improvements such as UI on mobile are being considered.
If you comment on an issue, mobile improvements can be made quickly.


Demo Web

You can try out various functions and usage methods right away.
All features provide example code.


Pub.Dev

Check out how to install from the official distribution site.


Documentation

The documentation has more details.


ChangeLog

Please note the changes when changing the version of PlutoGrid you are using.


Issue

Report any questions or errors.


Packages

PlutoGridExport
This package can export the metadata of PlutoGrid as CSV or PDF.


Screenshots
Change the color of the rows or make the cells look the way you want them.

PlutoGrid Normal


Date type input can be easily selected by pop-up and keyboard.

PlutoGrid Select Popup


The selection type column can be easily selected using a pop-up and keyboard.

PlutoGrid Select Date


Group columns by desired depth.

PlutoGrid Cell renderer


Grid can be expressed in dark mode or a combination of desired colors. Also, freeze the column, move it by dragging, or adjust the size.

PlutoGrid Multi select


Example

Generate the data to be used in the grid.


List<PlutoColumn> columns = [

  /// Text Column definition
  PlutoColumn(
    title: 'text column',
    field: 'text_field',
    type: PlutoColumnType.text(),
  ),

  /// Number Column definition
  PlutoColumn(
    title: 'number column',
    field: 'number_field',
    type: PlutoColumnType.number(),
  ),

  /// Select Column definition
  PlutoColumn(
    title: 'select column',
    field: 'select_field',
    type: PlutoColumnType.select(['item1', 'item2', 'item3']),
  ),

  /// Datetime Column definition
  PlutoColumn(
    title: 'date column',
    field: 'date_field',
    type: PlutoColumnType.date(),
  ),

  /// Time Column definition
  PlutoColumn(
    title: 'time column',
    field: 'time_field',
    type: PlutoColumnType.time(),
  ),
];

List<PlutoRow> rows = [
  PlutoRow(
    cells: {
      'text_field': PlutoCell(value: 'Text cell value1'),
      'number_field': PlutoCell(value: 2020),
      'select_field': PlutoCell(value: 'item1'),
      'date_field': PlutoCell(value: '2020-08-06'),
      'time_field': PlutoCell(value: '12:30'),
    },
  ),
  PlutoRow(
    cells: {
      'text_field': PlutoCell(value: 'Text cell value2'),
      'number_field': PlutoCell(value: 2021),
      'select_field': PlutoCell(value: 'item2'),
      'date_field': PlutoCell(value: '2020-08-07'),
      'time_field': PlutoCell(value: '18:45'),
    },
  ),
  PlutoRow(
    cells: {
      'text_field': PlutoCell(value: 'Text cell value3'),
      'number_field': PlutoCell(value: 2022),
      'select_field': PlutoCell(value: 'item3'),
      'date_field': PlutoCell(value: '2020-08-08'),
      'time_field': PlutoCell(value: '23:59'),
    },
  ),
];

Create a grid with the data created above.

  @override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: const Text('PlutoGrid Demo'),
    ),
    body: Container(
      padding: const EdgeInsets.all(30),
      child: PlutoGrid(
          columns: columns,
          rows: rows,
          onChanged: (PlutoGridOnChangedEvent event) {
            print(event);
          },
          onLoaded: (PlutoGridOnLoadedEvent event) {
            print(event);
          }
      ),
    ),
  );
}

Flutter version compatible
Flutter PlutoGrid
3.38.0 or higher 8.1.0 or higher
3.19.0 or higher 8.0.0 or higher
3.10.0 or higher 7.0.0 or higher
3.7.0 or higher 6.0.0 or higher
3.3.0 or higher 5.0.6 or higher
3.0.0 or higher 3.0.0-0.pre or higher
2.5.0 or higher 2.5.0 or higher

For other versions, contact the issue


Related packages

develop packages that make it easy to develop admin pages or CMS with Flutter.


Donate to this project

Buy me a coffee


Jetbrains provides a free license

IDE license support

所属分类

依赖

依赖清单 3 项

源码仓库

使用此插件的项目