Buscar pacotes, repositórios e categorias de apps

Capa de dismissible_carousel_viewpager
Detalhes do pacotev0.0.7

dismissible_carousel_viewpager

Este é um visualizador de páginas que fornece efeito carrossel e animação de desaparecimento quando a página é removida.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
85
Curtidas
31
Pontos Pub
160

Instalar pacote

flutter pub add dismissible_carousel_viewpager

Visão geral do pacote

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

Um pacote Flutter que implementa um ViewPager com estilo de carrossel e animações suaves de descarte quando as páginas são removidas. Ele melhora a interação do usuário ao fornecer uma interface deslizante visualmente envolvente com um efeito parecido com paralaxe. Ideal para aplicativos que exigem apresentação dinâmica de conteúdo com navegação baseada em gestos intuitiva e remoção de itens. O pacote é compatível com múltiplas plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, garantindo ampla compatibilidade. Foi projetado para ser leve e fácil de integrar em projetos Flutter existentes.

Casos de uso

  • Conteúdo interativo deslizante
  • Galerias de deslize para fechar
  • Interfaces baseadas em cartões dinâmicos
  • carrosséis de produtos de e-commerce
  • Fluxos de onboarding de usuário
  • Experiências de navegação de mídia

Principais recursos

  • Efeito de carrossel com paralaxe
  • animações suaves de descarte
  • Remoção de página acionada por gestos
  • Suporte multiplataforma
  • Integração fácil com o Flutter
  • Efeitos de transição personalizáveis

Indicado para

  • Desenvolvedores construindo interfaces de usuário interativas
  • Aplicativos com conteúdo deslizável
  • Designers procurando polimento visual
  • Aplicações com foco em dispositivos móveis
  • Aplicativos Web e desktop do Flutter
  • Projetos que exigem gestos intuitivos

Considerações

  • Pode exigir ajuste de desempenho para grandes conjuntos de dados
  • Personalização limitada para animações complexas
  • Não otimizado para atualizações de muito alta frequência
  • Mais adequado para listas de conteúdo moderadas
  • Requer manipulação cuidadosa do estado durante a eliminação
  • Depende da estabilidade da implementação subjacente do ViewPager

README original

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

This is a view pager provides carousel effect and dismissal animation when page was removed.

Features

  • Dismissal animation
Fade out & slide out Fade out & scale Fade out & circular hide
dismissal_fade_slide_out dismissal_fade_scale dismissal_fade_circular_hide
  • Carousel effect
Horizontal Vertical
base_usage_horizontal base_usage_vertical

Web Live demo

This an example app of this plugin of web version.

https://zyzdev.github.io/dismissible_carousel_viewpager

Usage

More detail of usage see /example app.

Base usage:

More detail, please run demo Base Usage at /example app.

DismissibleCarouselViewPager(
  viewportFraction: 0.5,
  besidePageScale: 0.8,
  itemBuilder: (context, index) {
    return Container(
      alignment: Alignment.center,
      color: index.isEven
      ? Colors.blueAccent.withOpacity(0.1)
      : Colors.deepPurpleAccent.withOpacity(0.1),
      child: Text("Item:$index"),
    ); 
  },
  itemCount: 100,
);
Dismissal animation

More detail please run demo Dismissal Usage at /example app.

dismissible_carousel_viewpager provides several kinds of animation(fade out, slide out, scale and circular hide) to make dismissal animation.

You can combine them to make your own style of dismissal animation.

Note

The dismissal animation base on AnimatedSwitcher.

Remember add key to the page widget that created by DismissibleCarouselViewPager.itemBuilder.

I recommend using the data that preparing to create page widget to create Key("$data"), ValueKey(data) or ObjectKey(data) for the page widget.

####example:


late final List<int> _item = List.generate(1000, (index) => index);

DismissibleCarouselViewPager(
  itemCount: _item.length,
  itemBuilder: (context, index) {
    Object data = _item[index];
    return Container(
      // must add key
      key: Key("$data"),
      //key: ValueKey(data),
      //key: ObjectKey(data),
      alignment: Alignment.center,
      color: Colors.grey.withOpacity(0.1),
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
        Expanded(
          child: Container(
            alignment: Alignment.bottomCenter,
            child: Text("Item:$data"),
          ),
        ),
        Expanded(
          child: IconButton(
            icon: const Icon(Icons.delete),
            onPressed: () {
                setState(() {
                  _item.remove(data);
                });
              },
            ),
          ),
        ],
      ),
    );
  },
  dismissalConfig: DismissalConfig(
    dismissalTypes: [
      DismissalType.fadeOut(),
      DismissalType.slideOut(),
    ],
  ),
);

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.