Buscar pacotes, repositórios e categorias de apps

Capa de pager
Detalhes do pacotev0.0.6

pager

Um widget que permite criar uma paginação numérica útil, por exemplo, se você quiser construir uma tabela paginada personalizada.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
494
Curtidas
26
Pontos Pub
160

Instalar pacote

flutter pub add pager

Visão geral do pacote

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

Pager é um widget do Flutter projetado para criar interfaces de paginação numérica personalizáveis, ideal para implementar exibições paginadas, como tabelas paginadas personalizadas. Oferece uma maneira limpa e reutilizável de navegar entre páginas com controles intuitivos e suporta várias opções de estilização. Construído com simplicidade e flexibilidade em mente, integra-se perfeitamente em aplicativos voltados para múltiplas plataformas.

Casos de uso

  • Implementações personalizadas de tabela paginada
  • Navegando em grandes conjuntos de dados em listas
  • Construindo navegação de página amigável ao usuário
  • Criando grids de dados responsivos
  • Implementando rolagem infinita com páginas discretas
  • Melhorando a UX em aplicativos com grande volume de dados

Principais recursos

  • Indicadores numéricos de página
  • exibição de faixa de página configurável
  • Suporte para navegação para frente e para trás
  • Integração fácil com ListView ou DataTable
  • Estilo personalizável por meio de tema ou propriedades
  • Compatibilidade multiplataforma

Indicado para

  • Desenvolvedores construindo interfaces de usuário intensivas em dados
  • Equipes que precisam de paginação leve
  • Aplicativos que exigem paginação personalizada de tabela
  • Projetos Flutter para múltiplas plataformas
  • Designers de interface que desejam controle sobre a aparência da paginação

Considerações

  • Não trata o carregamento de dados automaticamente
  • Requer gerenciamento manual do estado para mudanças de página
  • Limitado à paginação numérica (sem rolagem infinita)
  • Não otimizado para um número muito grande de páginas
  • Sem suporte embutido para recursos de acessibilidade

README original

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

Pager

Numeric pagination suitable for multiple cases, such as, custom paged table.

Getting started

You should ensure that you add the pager as a dependency in your flutter project.

dependencies:
 pager: ^0.0.6

Example Project

There is a example project in the example folder. Check it out. Otherwise, keep reading to get up and running.

Usage

Need to include the import the package to the dart file where it will be used, use the below command,

import 'package:pager/pager.dart';

Pager

Basic Widget


new Pager(
            currentPage: _currentPage,
            totalPages: 5,
            onPageChanged: (page) {},
          ),

Example 1

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Pagination Example"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Container(
              height: 200,
              margin: const EdgeInsets.all(32),
              color: Colors.blue,
              child: Center(
                child: Text(
                  "PAGE: $_currentPage",
                  style: const TextStyle(color: Colors.white, fontSize: 20),
                ),
              ),
            ),
            Pager(
              currentPage: _currentPage,
              totalPages: 5,
              onPageChanged: (page) {
                setState(() {
                  _currentPage = page;
                });
              },
            ),
          ],
        ),
      ),
    );
  }
}

Complete example 2

import 'package:flutter/material.dart';
import 'package:pager/pager.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Pagination Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({
    Key? key,
  }) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late int _currentPage;
  late int _itemsPerPage;
  List<int> pages = [5, 10, 18, 50, 100];
  late int _totalPages;
  final int _totalElements = 100;
  @override
  void initState() {
    super.initState();
    _currentPage = 1;
    _itemsPerPage = pages.first;
    _totalPages = (_totalElements / _itemsPerPage) as int;
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Pagination Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Pagination Example'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(32.0),
          child: Center(
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                Container(
                  height: 180,
                  width: 400,
                  color: Colors.blue,
                  child: Column(
                    mainAxisAlignment: MainAxisAlignment.spaceAround,
                    children: [
                      Text(
                        "TOTAL ELEMENT: $_totalElements",
                        style:
                            const TextStyle(color: Colors.white, fontSize: 18),
                      ),
                      Text(
                        "PAGE: $_currentPage",
                        style:
                            const TextStyle(color: Colors.white, fontSize: 18),
                      ),
                      Text(
                        "ITEMS PER PAGE: $_itemsPerPage",
                        style:
                            const TextStyle(color: Colors.white, fontSize: 18),
                      ),
                      Text(
                        "TOTAL PAGES: $_totalPages",
                        style:
                            const TextStyle(color: Colors.white, fontSize: 18),
                      ),
                    ],
                  ),
                ),
                const SizedBox(height: 32),
                Pager(
                  currentItemsPerPage: _itemsPerPage,
                  currentPage: _currentPage,
                  totalPages: _totalPages,
                  onPageChanged: (page) {
                    setState(() {
                      _currentPage = page;
                    });
                  },
                  showItemsPerPage: true,
                  onItemsPerPageChanged: (itemsPerPage) {
                    setState(() {
                      _itemsPerPage = itemsPerPage;
                      _totalPages = (_totalElements / _itemsPerPage).ceil();
                      _currentPage = 1;
                    });
                  },
                  itemsPerPageList: pages,
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.