Pular para o conteúdo
Voltar

mosaic_grid

Open sourcePapel: Autor e mantenedorFlutterDartPackage

Grids lazy em Flutter cujos tiles se dimensionam sozinhos: linhas que crescem até o card mais alto, masonry, tiles de várias colunas, paginação e jump-to-item.

Pacote open-source160/160 pub points4 likes490 downloads em 30 dias
mosaic_grid

// Visão geral

Grids lazy em Flutter cujos tiles escolhem a própria altura: linhas alinhadas pelo card mais alto, masonry, tiles que ocupam várias colunas, paginação e jump-to-item — num widget só, sem dependências além do Flutter.

// O desafio

O GridView dá a mesma altura a todo tile: você escolhe um childAspectRatio ou um mainAxisExtent, e o que não couber é cortado. Card real não tem altura fixa — um nome mais longo, um selo de promoção ou uma fonte de sistema maior, e a proporção que funcionava ontem estoura hoje.

// Decisões de engenharia

O tile escolhe a altura

Escolha
cada tile recebe a largura da coluna e decide a própria altura; cada linha tem a altura do seu tile mais alto.
Por quê
card real não tem altura fixa — a proporção que servia ontem estoura hoje.
Trade-off
o layout precisa medir cada tile antes de posicioná-lo.

// A solução

O MosaicGrid dá a cada tile a largura da coluna e deixa que ele escolha a altura. Nas linhas, cada linha tem a altura do seu tile mais alto; no masonry, cada tile cai na coluna mais curta. Colunas responsivas resolvidas pelo espaço real (funciona em painéis divididos), jumpToIndex exato mesmo para itens que nunca estiveram na tela, onEndReached para paginação e posições gravadas com precisão, para a rolagem nunca pular ao voltar.

Meu papel

Autor e mantenedor — layout, controller, 50 testes, app de exemplo com playground, CI e pipeline de release, publicado no pub.dev sob o publisher verificado devfrs.com.

Tecnologias

FlutterDartpub.devGitHub Actions

// Telas

Catálogo de produtos rolando em linhas alinhadas pelo card mais alto
Os mesmos cards num GridView com proporção fixa, estourando, e num MosaicGrid, em que cada linha cabe o seu card mais alto
Catálogo em tela de desktop
Quadro de notas em masonry no desktop

// Resultado e evidências

Publicado com nota máxima no pub.dev (160/160), pronto para WASM e para Android, iOS, web, Windows, macOS e Linux.

testes de layout e paginação
50

Gostou deste tipo de trabalho?