Buscar categorias, pacotes e repositórios

Capa de carousel_slider
Detalhes do pacotev5.1.2

carousel_slider

Um widget de carrossel deslizante, com suporte a rolagem infinita e widget filho personalizado.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
980 mil
Curtidas
6,1 mil
Pontos Pub
160

Instalar pacote

flutter pub add carousel_slider

Visão geral do pacote

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

Um pacote Flutter que fornece um widget de carrossel personalizável, permitindo rolagem infinita e suporte para widgets filhos personalizados. Ideal para exibir imagens, cartões ou qualquer conteúdo em um layout horizontal deslizante. O slider oferece animações suaves, reprodução automática e design responsivo em múltiplas plataformas. É leve e fácil de integrar a projetos existentes do Flutter. Perfeito para apresentar itens em destaque, galerias de produtos ou conteúdo promocional de forma visualmente envolvente.

Casos de uso

  • Exibindo galerias de imagens
  • Destacando os destaques do produto
  • Criando telas de boas-vindas
  • Apresentando conteúdo promocional
  • Criando controles deslizantes interativos
  • Suporte a listas roláveis infinitas

Principais recursos

  • Suporte de rolagem infinita
  • widgets filhos personalizáveis
  • Animações suaves
  • Funcionalidade de reprodução automática
  • Design responsivo
  • Compatibilidade multiplataforma

Indicado para

  • Aplicativos de comércio eletrônico
  • Sites de viagem ou portfólio
  • Experiências de integração
  • Aplicativos móveis ricos em conteúdo
  • Componentes de interface interativa
  • Projetos que exigem carrosséis deslizantes

Considerações

  • Pode exigir otimização para grandes conjuntos de dados
  • Impacto no desempenho com filhos complexos
  • Necessita de manipulação cuidadosa do tempo de reprodução automática
  • Controles de paginação embutidos limitados
  • Não ideal para rolagem vertical
  • Requer gerenciamento adequado de estado

README original

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

carousel_slider

A carousel slider widget.

Features

  • Infinite scroll
  • Custom child widgets
  • Auto play

Supported platforms

  • Flutter Android
  • Flutter iOS
  • Flutter web
  • Flutter desktop

Live preview

https://serenader2014.github.io/flutter_carousel_slider/#/

Note: this page is built with flutter-web. For a better user experience, please use a mobile device to open this link.

Installation

Add carousel_slider: ^5.1.2 to your pubspec.yaml dependencies. And import it:

import 'package:carousel_slider/carousel_slider.dart';

How to use

Simply create a CarouselSlider widget, and pass the required params:

CarouselSlider(
  options: CarouselOptions(height: 400.0),
  items: [1,2,3,4,5].map((i) {
    return Builder(
      builder: (BuildContext context) {
        return Container(
          width: MediaQuery.of(context).size.width,
          margin: EdgeInsets.symmetric(horizontal: 5.0),
          decoration: BoxDecoration(
            color: Colors.amber
          ),
          child: Text('text $i', style: TextStyle(fontSize: 16.0),)
        );
      },
    );
  }).toList(),
)

Params


CarouselSlider(
   items: items,
   options: CarouselOptions(
      height: 400,
      aspectRatio: 16/9,
      viewportFraction: 0.8,
      initialPage: 0,
      enableInfiniteScroll: true,
      reverse: false,
      autoPlay: true,
      autoPlayInterval: Duration(seconds: 3),
      autoPlayAnimationDuration: Duration(milliseconds: 800),
      autoPlayCurve: Curves.fastOutSlowIn,
      enlargeCenterPage: true,
      enlargeFactor: 0.3,
      onPageChanged: callbackFunction,
      scrollDirection: Axis.horizontal,
   )
 )

Since v2.0.0, you'll need to pass the options to CarouselOptions. For each option's usage you can refer to carousel_options.dart.

If you pass the height parameter, the aspectRatio parameter will be ignored.

Build item widgets on demand

This method will save memory by building items once it becomes necessary. This way they won't be built if they're not currently meant to be visible on screen. It can be used to build different child item widgets related to content or by item index.


CarouselSlider.builder(
  itemCount: 15,
  itemBuilder: (BuildContext context, int itemIndex, int pageViewIndex) =>
    Container(
      child: Text(itemIndex.toString()),
    ),
)

Carousel controller

In order to manually control the pageview's position, you can create your own CarouselSliderController, and pass it to CarouselSlider. Then you can use the CarouselSliderController instance to manipulate the position.

class CarouselDemo extends StatelessWidget {
  CarouselSliderController buttonCarouselController = CarouselSliderController();

 @override
  Widget build(BuildContext context) => Column(
    children: <Widget>[
      CarouselSlider(
        items: child,
        carouselController: buttonCarouselController,
        options: CarouselOptions(
          autoPlay: false,
          enlargeCenterPage: true,
          viewportFraction: 0.9,
          aspectRatio: 2.0,
          initialPage: 2,
        ),
      ),
      RaisedButton(
        onPressed: () => buttonCarouselController.nextPage(
            duration: Duration(milliseconds: 300), curve: Curves.linear),
        child: Text('→'),
      )
    ]
  );
}
CarouselSliderController methods
.nextPage({Duration duration, Curve curve})

Animate to the next page

.previousPage({Duration duration, Curve curve})

Animate to the previous page

.jumpToPage(int page)

Jump to the given page.

.animateToPage(int page, {Duration duration, Curve curve})

Animate to the given page.

Screenshot

Basic text carousel demo:

simple

Basic image carousel demo:

image

A more complicated image carousel slider demo:

complicated image

Fullscreen image carousel slider demo:

fullscreen

Image carousel slider with custom indicator demo:

indicator

Custom CarouselSliderController and manually control the pageview position demo:

manual

Vertical carousel slider demo:

vertical

Simple on-demand image carousel slider, with image auto prefetch demo:

prefetch

No infinite scroll demo:

noloop

All screenshots above can be found at the example project.

License

MIT

Categorias

Repositório-fonte

Projetos que usam este pacote

Rankings