Buscar pacotes, repositórios e categorias de apps

Capa de flex_grid
Detalhes do pacotev5.1.0

flex_grid

O FlexGrid exibe dados em formato tabular. Ele inclui colunas/linhas congeladas, carregamento adicional, alto desempenho e melhor experiência em TabBarView/PageView.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
157
Curtidas
51
Pontos Pub
130

Instalar pacote

flutter pub add flex_grid

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

FlexGrid é um widget de tabela de alto desempenho para Flutter que exibe dados em formato tabular com suporte a colunas e linhas congeladas, rolagem infinita com carregamento adicional e renderização otimizada para desempenho suave em ambientes dinâmicos como TabBarView ou PageView. Projetado para grandes conjuntos de dados, garante experiências responsivas em todas as plataformas, incluindo dispositivos móveis, web e desktop. O pacote é ideal para aplicações intensivas em dados que exigem gerenciamento eficiente de layout e clareza visual.

Casos de uso

  • Exibindo grandes conjuntos de dados em forma tabular
  • Criando tabelas com cabeçalhos fixos e rolagem
  • Implementando listas paginadas ou infinitas dentro de guias
  • Criando painéis de dados com colunas congeladas
  • Otimizando o desempenho em visualizações de navegação aninhadas

Principais recursos

  • Colunas e linhas congeladas para melhor navegação
  • Carregamento infinito com funcionalidade de 'carregar mais'
  • Renderização de alto desempenho para grandes conjuntos de dados
  • Integração suave com TabBarView/PageView
  • Compatibilidade entre plataformas (Android, iOS, Web, macOS, Windows, Linux)

Indicado para

  • Aplicativos intensivos em dados
  • Painéis de administração e dashboards
  • Aplicações móveis e web com tabelas complexas
  • Desenvolvedores que precisam de renderização eficiente de tabelas
  • Projetos usando TabBarView ou PageView para navegação

Considerações

  • Requer manipulação cuidadosa de grandes conjuntos de dados para evitar problemas de memória
  • Pode ser necessário estilização personalizada para layouts de células complexos
  • O desempenho depende do tamanho e da complexidade dos dados
  • Recursos limitados de edição integrada
  • Mais adequado para cenários de leitura somente ou interação simples

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

flex_grid

pub package GitHub stars GitHub forks GitHub license GitHub issues FlutterCandies QQ 群

Language: English| 中文简体

The FlexGrid control provides a powerful and quickly way to display data in a tabular format. It is including that frozened column/row,loading more, high performance and better experience in TabBarView/PageView.

parameter description default
frozenedColumnsCount The count of forzened columns 0
frozenedRowsCount The count of forzened rows 0
cellBuilder The builder to create cell required
cellBuilder The builder to create header required
columnsCount The count of columns, it should big than 0 required
source The data source of [FlexGrid] required
rowWrapper decorate row widget in this call back null
rebuildCustomScrollView rebuild when source is changed, It's from [LoadingMoreCustomScrollView] false
controller The [ScrollController] on vertical direction null
horizontalController The [SyncControllerMixin] for horizontal direction null
outerHorizontalSyncController The Outer [SyncControllerMixin], for example [ExtendedTabBarView] or [ExtendedPageView]. It make better experience when scroll on horizontal direction null
physics The physics on both horizontal and vertical direction null
verticalHighPerformance/horizontalHighPerformance If true, forces the children to have the given extent(Cell height/width) in the scroll direction. false
headerStyle An immutable style describing how to create header CellStyle.header()
cellStyle An immutable style describing how to create cell CellStyle.cell()
indicatorBuilder Widget builder for different loading state, it's from [LoadingMoreCustomScrollView] null
extendedListDelegate A delegate that provides extensions, it's from [LoadingMoreCustomScrollView] null
headersBuilder The builder to custom the headers of [FlexGrid] null
link if link is true, scroll parent [ExtendedTabView] when [FlexGrid] is over scroll false

source

[FlexGrid.source] is form loading_more_list, LoadingMoreBase is data collection for loading more. override loadData method to load your data. set hasMore to false when it has no more data.

class FlexGridSource extends LoadingMoreBase<GridRow> {
  int _pageIndex = 1;

  void _load() {
    for (int i = 0; i < 15; i++) {
      add(GridRow(name: 'index:$_pageIndex-$i'));
    }
  }

  @override
  bool get hasMore => _pageIndex < 4;

  @override
  Future<bool> loadData([bool isloadMoreAction = false]) async {
    await Future<void>.delayed(const Duration(seconds: 2));
    _load();
    _pageIndex++;
    return true;
  }

  @override
  Future<bool> refresh([bool notifyStateChanged = false]) async {
    _pageIndex = 1;
    return super.refresh(notifyStateChanged);
  }
}

rowWrapper

decorate row widget in this call back.

    FlexGrid(
      rowWrapper: (
        BuildContext context,
        T data,
        int row,
        Widget child,
      ) {
        return Column(
          children: <Widget>[
            child,
            const Divider(),
          ],
        );
      },
    );

headersBuilder

you can add anyother headers in this call back.

    FlexGrid(
      headersBuilder: (BuildContext b, Widget header) {
        return <Widget>[
          header,
          SliverToBoxAdapter(
            child: PullToRefreshContainer(
                (PullToRefreshScrollNotificationInfo info) {
              return PullToRefreshHeader(
                info,
                source.lastRefreshTime,
              );
            }),
          ),
        ];
      },
    );

Categorias

Dependências

Lista de dependências 4 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.