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

carousel_slider_plus のカバー
パッケージ詳細v7.1.2

carousel_slider_plus

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

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

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

flutter pub add carousel_slider_plus

パッケージ概要

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

無限スクロールとカスタム子ウィジェットをサポートする、スムーズでカスタマイズ可能なカルーセルスライダーを作成するためのFlutterウィジェットです。画像、カード、または任意のコンテンツを視覚的に魅力的な水平または垂直スクロールレイアウトで表示するのに最適です。このパッケージは軽量であり、モバイル、Web、デスクトップを含む複数のプラットフォームでのアプリにシームレスに統合できます。開発者は、インジケーター、自動再生、スワイプジェスチャーを簡単に設定でき、ユーザー体験を向上させることができます。

用途

  • 画像ギャラリーの表示
  • 製品カルーセルの紹介
  • オンボーディング画面の作成
  • 注目コンテンツの紹介
  • インタラクティブなスライダーの作成
  • プロモーションバナーの強調

主な機能

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

適している対象

  • モバイルアプリ開発者
  • Webアプリケーション作成者
  • デスクトップアプリ統合者
  • UI/UXデザイナー
  • 電子商取引アプリケーション
  • オンボーディング画面の実装

注意事項

  • 大規模なデータセット向けの最適化が必要になる場合があります
  • 組み込みのスタイリングオプションが限られている
  • 重い子ウィジェットによるパフォーマンスへの影響
  • 複雑なネストされたレイアウトには適していません
  • タップイベントの手動処理が必要です
  • 高度な機能には外部の依存関係に依存しています

元の README

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

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

カテゴリー

ソースリポジトリ

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