Buscar pacotes, repositórios e categorias de apps

Capa de dragsheet
Detalhes do pacotev0.0.4

dragsheet

Planilha e modal deslizante com física, elástico e arrastável para o Flutter. Criado para preencher uma lacuna que encontrei no meu próprio aplicativo.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
71
Curtidas
4
Pontos Pub
160

Instalar pacote

flutter pub add dragsheet

Visão geral do pacote

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

Dragsheet é um pacote Flutter que oferece painéis inferiores e modais com base em física, com efeito de salto e arrastáveis. Projetado para proporcionar uma experiência do usuário mais dinâmica e responsiva, ele preenche uma lacuna nas implementações padrão de painéis inferiores do Flutter ao adicionar interações de arrasto realistas com animações semelhantes a molas. Ideal para aplicativos que precisam de painéis interativos e acionados por gestos que se sintam naturais e envolventes.

Casos de uso

  • Painéis inferiores interativos
  • modais acionados por gestos
  • Componentes de UI dinâmicos
  • padrões de design orientados para dispositivos móveis
  • Transições de folha personalizáveis
  • Aumento do engajamento do usuário

Principais recursos

  • Interações de arrasto baseadas em física
  • efeitos de animação com rebote
  • Resposta suave a gestos
  • Suporte multiplataforma
  • Limites de arrasto personalizáveis
  • Integração fácil com aplicativos Flutter existentes

Indicado para

  • Desenvolvedores procurando comportamento avançado de sheet inferior
  • Aplicativos que exigem interfaces de usuário táteis e animadas
  • Designers focados em movimento fluido
  • Projetos Flutter com painéis inferiores interativos
  • Usuários que desejam um substituto direto para o BottomSheet padrão

Considerações

  • Pode exigir ajustes para um comportamento físico ótimo
  • Sobrecarga de desempenho adicional proveniente das animações
  • Não adequado para planilhas estáticas simples
  • Melhor usado com feedback visual claro
  • Personalização limitada além dos mecanismos de arrasto
  • Requer conhecimento dos princípios de simulação física

README original

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

Dragsheet: Bouncy, Fun, & Draggable ✨

Simple Flutter package for creating bouncy, fun, and most importantly draggable sheets.

Developed because I wanted this for my own app, was familiar with the React Native versions of this, but couldn't find a matching one in the Flutter ecosystem.

Examples

demo gif 1 demo gif 2 demo gif 3

This demo "sign up" blurry sheet is not included with the package. I created it to demonstrate what you are capable of doing with the dragsheet package.

Usage

  1. Initialize the controller.

    final controller = DragSheetController();
    
  2. Open YourWidget via the controller.

    controller.show(
        context,
        (ctx) => YourWidget(),
    ),
    
  3. If you want to close the sheet, use the controller.

    controller.close();
    
  4. If you want to listen to the state of the sheet, use the controller.

    controller.addListener(() {
        print(controller.isOpen);
    });
    
  5. Remember to dispose of the controller when you're done with it.

    @override
    void dispose() {
        super.dispose();
        controller.dispose();
    }
    
  6. If you care about customization, you won't be disapointed. However, the defaults should be solid enough. The main properties to know about are shrinkWrap, which will make the dragsheet shrink to the size of the child you provide it, and if shrinkWrap is true, closeOnShrinkWrapTap, which will close the sheet when you tap outside of the sheet.

    void show(
        BuildContext context,
        WidgetBuilder builder, {
        bool shrinkWrap = false,
        bool closeOnShrinkWrapTap = true, 
        double minScale = 0.85,
        double maxScale = 1.0,
        double minRadius = 0.0,
        double maxRadius = 30.0,
        double minOpacity = 0.0,
        double maxOpacity = 0.5,
        Duration entranceDuration = const Duration(milliseconds: 200),
        Duration exitDuration = const Duration(milliseconds: 200),
        Duration gestureFadeDuration = const Duration(milliseconds: 200),
        Duration programmaticFadeDuration = const Duration(milliseconds: 200),
        double effectDistance = 220.0,
        BgOpacity? bgOpacity,
        double swipeVelocityMultiplier = 2.5,
        double swipeAccelerationThreshold = 50.0,
        double swipeAccelerationMultiplier = 12.0,
        double swipeMinVelocity = 1000.0,
        double swipeMaxVelocity = 10000.0,
        double swipeFriction = 0.09,
        VoidCallback? onShow,
        VoidCallback? onDismiss,
        Duration opacityDuration = const Duration(milliseconds: 200),
        ApplyBorderRadius applyBorderRadius = ApplyBorderRadius.toTop,
    })
    

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.