Buscar pacotes, repositórios e categorias de apps

Capa de draggable_carousel_slider
Detalhes do pacotev0.0.1

draggable_carousel_slider

Um widget de carrossel arrastável, com suporte a repetição e widget filho personalizado.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
42
Curtidas
25
Pontos Pub
140

Instalar pacote

flutter pub add draggable_carousel_slider

Visão geral do pacote

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

Um widget Flutter que fornece um carrossel arrastável com suporte para repetição e widgets filhos personalizados. Permite rolagem horizontal suave com gestos de arrasto intuitivos, ideal para exibir imagens, cartões ou qualquer conteúdo personalizado de forma visualmente envolvente. O slider suporta loops infinitos, tornando-o adequado para apresentações contínuas de conteúdo. Compatível com todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, garantindo comportamento consistente em todos os lugares. Perfeito para aplicativos que precisam de exibições interativas e deslizáveis de conteúdo.

Casos de uso

  • Exibindo galerias de imagens
  • Criando carrosséis de produtos
  • Criando telas interativas de onboarding
  • Apresentando conteúdo em destaque
  • Implementando interfaces de cartão deslizáveis

Principais recursos

  • Suporte a gestos arrastáveis
  • Modo de repetição
  • widgets filhos personalizáveis
  • Compatibilidade multiplataforma
  • Animações suaves
  • Design responsivo

Indicado para

  • desenvolvedores de aplicativos móveis
  • Criadores de aplicativos web
  • Designers de UI interativos
  • Construtores de aplicativos de comércio eletrônico
  • Aplicações ricas em conteúdo

Considerações

  • Requer manipulação cuidadosa de grandes conjuntos de dados
  • Pode afetar o desempenho com widgets filhos pesados
  • Necessita de testes em todas as plataformas-alvo
  • Opções limitadas de estilo embutido
  • Não otimizado para rolagem vertical

README original

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

Draggable Carousel Slider

Draggable Carousel Slider is a Flutter package that provides a customizable carousel slider widget with draggable functionality. It allows users to easily create interactive carousel sliders where items can be dragged.

Features

  • Draggable functionality: Items in the carousel slider can be dragged horizontally, providing an interactive user experience.
  • Looping option: The carousel slider supports looping through items, allowing seamless navigation from the last item back to the first.
  • Responsive design: The package includes features for handling various screen sizes and orientations, ensuring a consistent user experience across different devices.
  • Custom child widget: Users can supply their own custom widgets as carousel items, enabling a wide range of design possibilities.

Getting started

To start using the Draggable Carousel Slider package, you can simply add the package to your pubspec.yaml file and import it into your Flutter project.

dependencies:
  ...
  draggable_carousel_slider:

Usage

import 'package:draggable_carousel_slider/draggable_carousel_slider.dart';
import 'package:flutter/material.dart';
import 'package:shimmer/shimmer.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});
  @override
  State<MyApp> createState() => _MyAppPageState();
}

class _MyAppPageState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
  }

  Widget _image(
    String path,
    double width,
    double height, [
    bool shimmer = false,
  ]) =>
      ClipRRect(
        borderRadius: BorderRadius.circular(16),
        child: Image.network(
          path,
          width: width,
          height: height,
          fit: BoxFit.cover,
          loadingBuilder: (
            BuildContext context,
            Widget child,
            ImageChunkEvent? loadingProgress,
          ) => AnimatedCrossFade(
              firstChild: child,
              secondChild: Shimmer.fromColors(
                baseColor: Colors.grey.shade400,
                highlightColor: Colors.grey.shade700,
                enabled: true,
                period: const Duration(seconds: 2),
                child: Container(
                  width: width,
                  height: height,
                  color: Colors.black,
                ),
              ),
              crossFadeState: shimmer ||
                      ((child as Semantics).child as RawImage).image == null
                  ? CrossFadeState.showSecond
                  : CrossFadeState.showFirst,
              duration: const Duration(milliseconds: 300),
            ),
        ),
      );

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(
          seedColor: Colors.deepPurple,
        ),
        useMaterial3: true,
      ),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: SafeArea(
          child: Padding(
            padding: const EdgeInsets.symmetric(vertical: 16.0),
            child: Center(
              child: DraggableSlider(
                loop: true,
                children: [
                  _image('https://picsum.photos/id/230/600/600', 300, 300),
                  _image(
                      'https://picsum.photos/id/431/600/600', 300, 300, true),
                  _image('https://picsum.photos/id/232/600/600', 300, 300),
                  _image('https://picsum.photos/id/433/600/600', 300, 300),
                  _image('https://picsum.photos/id/234/600/600', 300, 300),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.