Buscar categorias, pacotes e repositórios

Capa de carousel_slider_plus
Detalhes do pacotev7.1.2

carousel_slider_plus

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

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
43,3 mil
Curtidas
97
Pontos Pub
160

Instalar pacote

flutter pub add carousel_slider_plus

Visão geral do pacote

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

Um widget Flutter para criar carrosséis suaves e personalizáveis com suporte a rolagem infinita e widgets filhos personalizados. Ideal para exibir imagens, cartões ou qualquer conteúdo em um layout horizontal ou vertical deslizante visualmente atrativo. O pacote é leve e se integra perfeitamente em aplicativos em múltiplas plataformas, incluindo móvel, web e desktop. Permite que os desenvolvedores configurem facilmente indicadores, reprodução automática e gestos de deslize para uma experiência do usuário aprimorada.

Casos de uso

  • Exibindo galerias de imagens
  • Exibindo carrosséis de produtos
  • Criando telas de boas-vindas
  • Apresentando conteúdo em destaque
  • Criando controles deslizantes interativos
  • Destacando banners promocionais

Principais recursos

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

Indicado para

  • desenvolvedores de aplicativos móveis
  • Criadores de aplicativos web
  • Integradores de aplicativos para desktop
  • designers de UI/UX
  • Aplicações de comércio eletrônico
  • Implementações de tela de onboarding

Considerações

  • Pode exigir otimização para grandes conjuntos de dados
  • Opções limitadas de estilo embutido
  • Impacto no desempenho com widgets filhos pesados
  • Não é ideal para layouts aninhados complexos
  • Requer manipulação manual de eventos de toque
  • Depende de dependências externas para funcionalidades avançadas

README original

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

carousel_slider_plus

A carousel slider widget.

This package is fork of carousel_slider which is not actively maintained.

pub package

likes popularity pub points



Migrating from carousel_slider

In this fork some of the namings are changed. So follow this below guides to migrate over this new package.

Please make sure to change the import statement
Before
import "package:carousel_slider/carousel_slider.dart;
After
import 'package:carousel_slider_plus/carousel_slider_plus.dart';
The parameter name to pass controller in CarouselSlider is now changed to controller from carouselController.
Before
CarouselSlider(
  carouselController: _controller,
  // Rest of the code
),
After
CarouselSlider(
  controller: _controller,
  // Rest of the code
),

Features

  • Infinite scroll
  • Custom child widgets
  • Auto play

Live preview

https://kishan-dhankecha.github.io/carousel-slider-plus-gh-pages/

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

Installation

Add latest version of carousel_slider_plus to your pubspec.yaml dependencies. And import it:

import 'package:carousel_slider_plus/carousel_slider_plus.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(),
)
Parameters
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,
  )
)

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) {
    return 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,
        controller: 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
/// Animate to the next page
controller.nextPage({Duration duration, Curve curve});


/// Animate to the previous page
controller.previousPage({Duration duration, Curve curve});


/// Jump to the given page.
controller.jumpToPage(int page);


/// Animate to the given page.
controller.animateToPage(int page, {Duration duration, Curve curve});


/// Start/Stop Auto-play (only work if `autoplay` is set to true in `CarouselOptions`)
controller.startAutoPlay();

Screenshots

Basic text carousel slider:

simple

Basic image carousel slider:

image

A more complicated image carousel slider:

complicated image

Full Screen image carousel slider:

fullscreen

Image carousel slider with custom indicator:

indicator

Manually control the page position:

manual

Vertical carousel slider:

vertical

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

prefetch

No infinite scroll:

no-loop

All screenshots above can be found at the example project.

License

MIT

Categorias

Repositório-fonte

Projetos que usam este pacote