Buscar pacotes, repositórios e categorias de apps

Capa de swipable_stack
Detalhes do pacotev2.0.0

swipable_stack

Um widget para empilhar cartões, que os usuários podem deslizar horizontal e verticalmente com animações belas como no Tinder.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
8,3 mil
Curtidas
325
Pontos Pub
150

Instalar pacote

flutter pub add swipable_stack

Visão geral do pacote

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

Um widget Flutter que cria uma pilha interativa de cartões com animações suaves de deslizamento horizontal e vertical, inspirado no Tinder. Permite aos usuários deslizar os cartões para a esquerda ou direita (ou para cima/baixo) com gestos intuitivos e transições elegantes. Ideal para aplicativos que exigem uma interface baseada em deslizamento, como aplicativos de namoro, apresentações de produtos ou recursos de descoberta de conteúdo. O pacote oferece suporte a múltiplas plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, garantindo comportamento consistente entre dispositivos.

Casos de uso

  • Interfaces de aplicativos de namoro
  • Descoberta de produto ou item
  • Navegação de conteúdo com gestos de deslize
  • fluxos interativos de onboarding
  • Engajamento do usuário gamificado
  • Quiz baseado em deslize

Principais recursos

  • Deslize horizontal e vertical suave
  • Curvas de animação personalizáveis
  • Reconhecimento de gestos com feedback
  • Suporte para múltiplas plataformas
  • Integração fácil com a interface existente
  • Alinhamento e espaçamento de cartão configuráveis

Indicado para

  • Desenvolvedores criando interfaces baseadas em deslize
  • Designers em busca de experiências interativas com cartões
  • Aplicativos que exigem navegação orientada por gestos
  • Aplicações móveis e web multiplataforma
  • Prototipagem de layouts interativos

Considerações

  • Pode exigir ajuste de desempenho para pilhas grandes de cartões
  • Personalização interna limitada para animações complexas
  • Requer manipulação cuidadosa do estado durante deslizes rápidos
  • Não otimizado para interações de deslize com frequência extremamente alta
  • Mais adequado para contagens moderadas de cartões para manter a responsividade

README original

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

swipable_stack

pub.dev github likes popularity pub points license

A widget for stacking cards, which users can swipe horizontally and vertically with beautiful animations like Tinder UI.

demo

(Sorry, the package name swipable_stack is typo of swipeable stack)

Usage

builder

A SwipableStack uses a builder to display widgets.

SwipableStack(
  builder: (context, properties) {
    return Image.asset(imagePath);
  },
),

onSwipeCompleted

You can get completion event with onSwipeCompleted.

SwipableStack(
  onSwipeCompleted: (index, direction) {
    print('$index, $direction');
  },
)

overlayBuilder

You can show overlay on the front card with overlayBuilder.

SwipableStack(
  overlayBuilder: (context, properties) {
    final opacity = min(properties.swipeProgress, 1.0);
    final isRight = properties.direction == SwipeDirection.right;
    return Opacity(
      opacity: isRight ? opacity : 0,
      child: CardLabel.right(),
    );
  },
)

controller

SwipableStackController allows you to control swipe action & also rewind recent action.

final controller = SwipableStackController();

SwipableStack(
  controller:controller,
  builder: (context, properties) {
    return Image.asset(imagePath);
  },
);
controller.next(
  swipeDirection: SwipeDirection.right,
);
controller.rewind();

SwipableStackController provides to access currentIndex of SwipableStack.

final controller = SwipableStackController();
controller.addListener(() {
  print('${_controller.currentIndex}');
});

onWillMoveNext

You can also restrict user actions according to index or action with onWillMoveNext.

SwipableStack(
  onWillMoveNext: (index, direction) {
    final allowedActions = [
      SwipeDirection.right,
      SwipeDirection.left,
    ];
    return allowedActions.contains(direction);
  },
);

swipeAssistDuration

You can set the speed the user is able to swipe through Widgets with the swipeAssistDuration.

SwipableStack(
  swipeAssistDuration: Duration(milliseconds: 100),
)

The default is 650ms.

stackClipBehaviour

You can set the clipBehaviour of the stack with the stackClipBehaviour.
Change it to Clip.none to exceed the boundaries of parent widget size.

SwipableStack(
  stackClipBehaviour: Clip.none,
)

The default is Clip.hardEdge.

allowVerticalSwipe

Disable vertical swipe with allowVerticalSwipe.
Changing to false disable vertical swipe capabilities

SwipableStack(
  allowVerticalSwipe: false,
)

The default is true.

swipeTopAnchor

Set the swipe anchor with swipeAnchor with the following enum SwipeAnchor.top : card rotation on bottom and anchored on top SwipeAnchor.bottom : card rotation on top and anchored on bottom

SwipableStack(
  swipeAnchor: SwipeAnchor.top,
)

The default is SwipeAnchor.top.

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.