搜尋套件、儲存庫與 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 項

原始碼儲存庫

使用此套件的專案