Buscar pacotes, repositórios e categorias de apps

Capa de expandable_page_view
Detalhes do pacotev1.3.0

expandable_page_view

Um widget PageView ajustando sua altura para a página atualmente exibida

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
173 mil
Curtidas
596
Pontos Pub
160

Instalar pacote

flutter pub add expandable_page_view

Visão geral do pacote

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

O pacote expandable_page_view aprimora o PageView do Flutter ajustando dinamicamente sua altura com base no conteúdo da página atualmente visível. Isso permite rolagem suave e responsiva, onde cada página pode ter alturas variáveis sem comprometer o layout geral. Ideal para aplicativos com conteúdo de altura variável, como formulários, cartões ou listas dinâmicas. O pacote oferece suporte a todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, garantindo comportamento consistente entre dispositivos.

Casos de uso

  • Páginas de formulário dinâmico
  • Layouts de cartão com altura variável
  • conteúdo rolável responsivo
  • Telas de introdução interativas
  • Painéis com conteúdo pesado

Principais recursos

  • Altura se adapta à página atual
  • Transições suaves entre páginas
  • Compatibilidade multiplataforma
  • Integração simples com PageView
  • Suporta visualizações de rolagem aninhadas

Indicado para

  • Aplicativos com páginas de altura variável
  • Desenvolvedores procurando comportamento de rolagem responsivo
  • Projetos que exigem layouts de UI adaptativos
  • Aplicações móveis e web com conteúdo dinâmico
  • Designers de interface que querem experiências de rolagem flexíveis

Considerações

  • Pode afetar o desempenho com conteúdo pesado
  • Requer manipulação cuidadosa da física de rolagem
  • Não ideal para designs de página com altura fixa
  • Personalização limitada além do ajuste de altura
  • Melhor usado com tamanhos de conteúdo de página previsíveis

README original

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

expandable_page_view

A PageView widget adjusting its height to currently displayed page. It accepts the same parameters as classic PageView.

Horizontal Vertical

Getting Started

In the pubspec.yaml of your flutter project, add the following dependency:

dependencies:
  ...
  expandable_page_view: ^1.0.17

Import it:

import 'package:expandable_page_view/expandable_page_view.dart';

Usage Examples

Fixed Expandable Page View

In order to create a fixed page view just pass a list of widgets to children parameter:

ExpandablePageView(
  children: [
     ExamplePage(Colors.blue, "1", 100),
     ExamplePage(Colors.green, "2", 200),
     ExamplePage(Colors.red, "3", 300),
  ],
),
Dynamically built Expandable Page View

If You have multiple pages to display, and You want to build them dynamically while scrolling, use .builder constructor and pass itemCount and itemBuilder parameters:

ExpandablePageView.builder(
  itemCount: 3,
  itemBuilder: (context, index) {
    return ExamplePage(Colors.blue, index.toString(), (index + 1) * 100.0);
  },
),
Loop Mode

To create an infinitely scrolling page view, set loop: true:

ExpandablePageView(
  loop: true,
  children: [
    ExamplePage(Colors.blue, "1", 100),
    ExamplePage(Colors.green, "2", 200),
    ExamplePage(Colors.red, "3", 300),
  ],
),
Programmatic Control in Loop Mode

To programmatically navigate pages in loop mode (e.g., for auto-play carousels or custom indicators), use ExpandablePageController:

final controller = ExpandablePageController(itemCount: 3);

ExpandablePageView(
  controller: controller,
  loop: true,
  children: [
    ExamplePage(Colors.blue, "1", 100),
    ExamplePage(Colors.green, "2", 200),
    ExamplePage(Colors.red, "3", 300),
  ],
),

// Navigate programmatically
controller.jumpToPage(2);
controller.animateToPage(0, duration: Duration(milliseconds: 300), curve: Curves.ease);

// Read current page
print(controller.page);     // e.g., 1.5 (fractional during scroll)
print(controller.realPage); // e.g., 1 (rounded)

Note: ExpandablePageController uses shortest-path navigation — animating from page 0 to the last page will scroll backward (1 step) rather than forward through all pages.

Check out example project to play with ExpandablePageView.

Categorias

Repositório-fonte

Projetos que usam este pacote