カテゴリー・パッケージ・リポジトリを検索

carousel_slider のカバー
パッケージ詳細v5.1.2

carousel_slider

無限スクロールとカスタム子ウィジェットをサポートするカルーセルスライダー用ウィジェットです。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
98万
いいね数
6060
Pub ポイント
160

パッケージをインストール

flutter pub add carousel_slider

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

カスタマイズ可能なカルーセルスライダー小道具を提供するFlutterパッケージで、無限スクロールとカスタム子ウィジェットのサポートを可能にします。画像、カード、または任意のコンテンツをスワイプ可能な水平レイアウトで表示するのに最適です。スライダーは滑らかなアニメーション、自動再生、複数プラットフォームでの応答性デザインを提供します。軽量で既存のFlutterプロジェクトへの統合も簡単です。視覚的に魅力的な方法で注目アイテム、製品ギャラリー、プロモーションコンテンツを紹介するのに最適です。

用途

  • 画像ギャラリーの表示
  • 製品のハイライトを紹介する
  • オンボーディング画面の作成
  • プロモーションコンテンツの紹介
  • インタラクティブなスライダーの作成
  • 無限にスクロール可能なリストのサポート

主な機能

  • 無限スクロールのサポート
  • カスタマイズ可能な子ウィジェット
  • スムーズなアニメーション
  • オートプレイ機能
  • レスポンシブデザイン
  • クロスプラットフォーム互換性

適している対象

  • ECアプリ
  • 旅行またはポートフォリオのウェブサイト
  • オンボーディング体験
  • コンテンツ豊富なモバイルアプリ
  • インタラクティブUIコンポーネント
  • スワイプ可能なカルーセルを必要とするプロジェクト

注意事項

  • 大規模なデータセット向けの最適化が必要になる場合があります
  • 複雑な子要素によるパフォーマンスへの影響
  • 自動再生のタイミングを慎重に扱う必要があります
  • 限定された組み込みページネーションコントロール
  • 垂直スクロールには適していません
  • 適切な状態管理が必要です

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

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

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト

ランキング