Buscar pacotes, repositórios e categorias de apps

Capa de stacked_listview
Detalhes do pacotev1.0.4

stacked_listview

Uma ListView de filhos empilhados. Cada filho será empilhado primeiro ao rolar.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
1,6 mil
Curtidas
52
Pontos Pub
150

Instalar pacote

flutter pub add stacked_listview

Visão geral do pacote

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

StackedListView é um widget do Flutter que exibe uma lista de filhos empilhados uns sobre os outros, com o primeiro item totalmente visível e os itens subsequentes parcialmente sobrepostos conforme o usuário rola. Cria um efeito visualmente envolvente em que os itens parecem se empilhar um atrás do outro, ideal para criar interfaces de lista dinâmicas e em camadas. O pacote suporta todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, tornando-o altamente versátil para aplicações multiplataforma. Foi projetado para desenvolvedores que buscam animações únicas de listas sem a necessidade de pintura personalizada complexa.

Casos de uso

  • Criando listas escalonadas com rolagem
  • Projetando interfaces do usuário baseadas em cartões com profundidade
  • Construindo layouts de feed visualmente ricos
  • Implementando transições interativas de itens empilhados
  • Melhorando a navegação de aplicativos móveis com pistas visuais

Principais recursos

  • Renderização de filho empilhado
  • Rolagem suave com efeito de camadas
  • Compatibilidade multiplataforma
  • Integração simples via pub
  • Comportamento de empilhamento personalizável
  • Suporte de animação embutido

Indicado para

  • Designers de interface procurando profundidade visual
  • Desenvolvedores construindo interfaces de aplicativos modernos
  • Aplicativos com conteúdo em formato de cartão ou linha do tempo
  • Projetos que exigem efeitos sutis de lista animada
  • Iniciantes do Flutter explorando padrões avançados de lista

Considerações

  • Pode afetar o desempenho com muitos itens
  • Requer planejamento cuidadoso do layout
  • Mais adequado para contagens moderadas de itens
  • Personalização limitada além do empilhamento
  • Não ideal para listas densas de dados
  • Necessita testes em dispositivos de baixa potência

README original

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

A Stacked ListView

Video

v1.0.4 Breaking Change

  • onRemove(int index) changed to onRemove(int index, AxisDirection dir)
  • beforeRemove(int index) changed to beforeRemove(int index, AxisDirection dir)
🎉🎉 Yes, Now you can know the user's swipe direction for each list item 🎉🎉

Install

flutter pub add stacked_listview

Example code:

Scaffold(
  appBar: AppBar(),
  backgroundColor: Colors.black,
  body: SafeArea(
    child: StackedListView(
      padding: EdgeInsets.only(left: 20, right: 20, top: 50),
      itemCount: data.length,
      itemExtent: itemHeight,
      heightFactor: 0.7,
      fadeOutFrom: 0.7,
      onRemove: (index, direction) {
        setState(() {
          data.removeAt(index);
        });
      },
      beforeRemove: (index, direction) async {
        return await showDialog<bool>(
          context: context,
          builder: (_) => AlertDialog(
            title: Text('Delete ${data[index]} ?'),
            actions: [
              TextButton(
                  onPressed: () => Navigator.pop(context),
                  child: Text('Cancel')),
              ElevatedButton(
                onPressed: () => Navigator.pop(context, true),
                child: Text('Delete'),
              ),
            ],
          ),
        ).then((value) => value == true);
      },
      builder: (_, index) {
        return Container(
          width: double.infinity,
          height: itemHeight,
          decoration: BoxDecoration(
            borderRadius: BorderRadius.all(Radius.circular(20.0)),
            color: Colors.white,
            boxShadow: [
              BoxShadow(color: Colors.black.withAlpha(100), blurRadius: 10),
            ],
          ),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Text(
                data[index],
                style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
              ),
              Text('Slide to left or right to delete'),
            ],
          ),
          padding: EdgeInsets.all(20),
        );
      },
    ),
  ),
);

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.