ProDatagrid: A new Flutter package! [Currently private]

ProDatagrid: A new Flutter package! [Currently private]

A performant and highly customizable solution for viewing a chunk of data in a productive way!

Table of contents


  • Any widget can be the child of a cell of a column. Whatever you want to show in that column, you can show it. For example, a country flag and country name, rating stars from 1 to 5, and a financial summary chart. (I will update this article with more video examples.),

  • The child of each cell is laid out as its natural size, without any constraints applied. This helps so much.

  • Also, any widget can be the child of a header of a column,

  • The vertical scrolling is super performant. You can scroll thousands of rows without an issue. The internal state management of this package prevents unnecessary rebuilds. (BTW, I have used GetX-Rx-Obx),

  • Columns can be resized by dragging the right edge of the header. (Like we do in Excel). On mobile, it can be done by pinching (zooming in and out with two fingers),

  • Columns can be resized so that they are as wide as the longest cell. In shorter words, the auto fit cells feature is supported by double-clicking the right edge of the header. (Like we do in Excel),

  • Columns can be docked to the left or the right sides of the table. Columns can also be fixed to the left and the right sides of the table so that the users cannot undock them.

  • Columns can be reordered by drag & drop. Docked and fixed columns are ordered by themselves.

  • Columns can be hidden or shown.

  • The original data that is passed to the ProDatagrid can be sorted internally with the provided customizable sorting function for each column. Sorting is very fast, it takes a split second.

  • The cells of a column can be aligned to the left, right, or center.

What's next?

  • A comprehensive data filtering feature will be added. It will allow filtering of the provided data list internally by combining the result of each filter applied.

  • Resizing row height,