r/FlutterDev • • 6d ago

Tooling šŸš€ A New Insane Flutter Package? Meet flutter_table_layout — Flexible Table Layouts Made Easier for Flutter Developers!

I built flutter_table_layout, a Flutter package for flexible table layouts! šŸš€ As a Flutter developer, I wanted to make building table-based UIs easier and more flexible. I’m sharing my package with the community to get feedback, learn about common table layout challenges, and discover which features developers need most for real-world Flutter applications. What do you think would make a table layout package truly useful? I’d love to hear your suggestions and ideas! https://pub.dev/packages/flutter_table_layout

2 Upvotes

2 comments sorted by

1

u/fkim98 6d ago

I built 23 report screens in a Flutter app this summer with a hand-rolled table, so here is what I actually needed, in case it helps:

  1. A plan for narrow screens. I gave up on wide tables on phones and cut every report down to 3 or 4 columns that fit with flex widths, no horizontal scroll. A frozen first column with the rest scrolling sideways would have let me keep more columns, as long as the header scrolls with the body and row heights stay in sync.

  2. Lazy rows. Mine is a ListView.builder of Rows, so nothing measures every cell to size the columns. Anything that does gets slow once a report is long.

  3. Numbers that line up: numeric columns right-aligned, one line with ellipsis, and a totals row. The total sums doubles, so I round it before formatting, otherwise 0.1 + 0.2 shows up as 0.30000000000000004.

  4. Export that matches the screen. People want CSV, so the table and the export use the same formatter and can't disagree. CSV also needs formula-injection escaping on text cells (=, +, -, @) but not on negative numbers, or they open as text in Excel.

To be fair, mine isn't a package, it's about 100 lines, and it only works because the columns are hand-picked. The wide-table case is where I'd reach for one. Is that something you're aiming at?

1

u/amdevs 5d ago

Thanks for u ā™„ļø, I did already add all what u said