Kategorien, Pakete und Repositories suchen

Cover von carousel_slider
Paketdetailsv5.1.2

carousel_slider

Ein Carousel-Slider-Widget, das unendliches Scrollen und benutzerdefinierte Kind-Widgets unterstützt.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
980.000
Likes
6060
Pub-Punkte
160

Paket installieren

flutter pub add carousel_slider

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein Flutter-Paket, das ein anpassbares Karussell-Slider-Widget bereitstellt, das unendliches Scrollen und Unterstützung für benutzerdefinierte Kind-Widgets ermöglicht. Ideal zum Anzeigen von Bildern, Karten oder beliebigem Inhalt in einer horizontalen, swipebaren Layout. Der Slider bietet flüssige Animationen, automatisches Abspielen und responsive Gestaltung über mehrere Plattformen hinweg. Leichtgewichtig und einfach in bestehende Flutter-Projekte zu integrieren. Perfekt, um hervorgehobene Artikel, Produktgalerien oder Werbeinhalte visuell ansprechend darzustellen.

Anwendungsfälle

  • Bildergalerien anzeigen
  • Produkt-Highlights präsentieren
  • Onboarding-Bildschirme erstellen
  • Präsentation von Werbeinhalten
  • Interaktive Schieberegler erstellen
  • Unterstützung von unendlichen scrollbaren Listen

Hauptmerkmale

  • Unterstützung für unendliches Scrollen
  • Anpassbare Kind-Widgets
  • Glatte Animationen
  • Automatisierte Wiedergabefunktion
  • Reaktives Design
  • Plattformübergreifende Kompatibilität

Geeignet für

  • E-Commerce-Apps
  • Reise- oder Portfolio-Websites
  • Onboarding-Erlebnisse
  • inhaltsreiche mobile Apps
  • Interaktive Benutzeroberflächenkomponenten
  • Projekte, die swipebare Karussells erfordern

Hinweise

  • Kann eine Optimierung für große Datensätze erfordern
  • Leistungsbeeinträchtigung bei komplexen Kindern
  • Erfordert sorgfältige Behandlung des Autoplay-Zeitpunkts
  • Eingeschränkte integrierte Paginierungssteuerung
  • Nicht ideal für vertikales Scrollen
  • Erforderliche Zustandsverwaltung

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

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

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Ranglisten