パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v1.0.2

image_slider

このパッケージを使用すると、完全にカスタマイズ可能なウィジェットスライダー(自動/手動スライド)を作成できます。主に画像スライダー向けですが、他のすべてのウィジェットも受け入れます。

30日間ダウンロード
23
いいね数
10
Pub ポイント
30

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

flutter pub add image_slider

パッケージ概要

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

image_slider パッケージは、Flutterでカスタマイズ可能なスライダーを作成できるようにし、自動および手動のスライド遷移をサポートしています。主に画像の表示を目的としていますが、任意のウィジェットタイプも対応しており、コンテンツの提示において柔軟性を提供します。完全なカスタマイズオプションにより、開発者はスライダーの外観や挙動をさまざまなデザイン要件に合わせて調整できます。アプリ内でのギャラリー、製品表示、プロモーションコンテンツの表示に最適です。このパッケージはオープンソースであり、GitHub上でメンテナンスされており、コミュニティによる貢献や修正が可能です。

用途

  • 画像ギャラリー
  • 製品カルーセル
  • プロモーションバナー
  • 動的コンテンツスライド
  • インタラクティブUI要素

主な機能

  • 自動および手動スライド
  • 完全なウィジェットカスタマイズ
  • 任意のウィジェットタイプのサポート
  • オープンソースかつコミュニティ主導
  • pub add を通じた簡単な統合

適している対象

  • モバイルアプリ開発者
  • UI/UXデザイナー
  • 電子商取引アプリケーション
  • コンテンツ豊富なアプリケーション
  • カスタムカルーセルの実装

注意事項

  • 限定されたプラットフォーム固有の最適化
  • 組み込みのページネーションインジケーターなし
  • 高度なデザインには手動でのスタイリングが必要です
  • 外部メンテナンスに依存しています
  • アニメーション用に追加の依存関係が必要になる場合があります

元の README

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

image_slider

This pub lets you make a widget slider (automatic/manual sliding) with full customization. Mainly intended for image slider, this also accepts all other widgets.

Screenshots

Usage

Example

To use this package :

  • add the dependency to your [pubspec.yaml] file.
  dependencies:
    flutter:
      sdk: flutter
    image_slider:
How to use
ImageSlider(
  /// Shows the tab indicating circles at the bottom
  showTabIndicator: false,

  /// Cutomize tab's colors
  tabIndicatorColor: Colors.lightBlue,

  /// Customize selected tab's colors
  tabIndicatorSelectedColor: Color.fromARGB(255, 0, 0, 255),

  /// Height of the indicators from the bottom
  tabIndicatorHeight: 16,

  /// Size of the tab indicator circles
  tabIndicatorSize: 16,

  /// tabController for walkthrough or other implementations
  tabController: tabController,

  /// Animation curves of sliding
  curve: Curves.fastOutSlowIn,

  /// Width of the slider
  width: MediaQuery.of(context).size.width,

  /// Height of the slider
  height: 220,

  /// If automatic sliding is required
  autoSlide: false,

  /// Time for automatic sliding
  duration: new Duration(seconds: 6),

  /// If manual sliding is required
  allowManualSlide: true,

  /// Children in slideView to slide
  children: links.map((String link) {
    return new ClipRRect(
        borderRadius: BorderRadius.circular(8.0),
        child: Image.network(
          link,
          width: MediaQuery.of(context).size.width,
          height: 220,
          fit: BoxFit.fill,
        ));
  }).toList(),
),

License

Copyright 2020 Jay Mehta

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Getting Started

This project is a starting point for a Dart package, a library module containing code that can be shared easily across multiple Flutter or Dart projects.

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

Example

As time based...

import 'package:flutter/material.dart';
import 'package:image_slider/image_slider.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Image Slider Demo Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage>
    with SingleTickerProviderStateMixin {
  /// This pub allows you to make image_slider widget and also multiple other useful widgets like walkthrough etc.

  @override
  void initState() {
    super.initState();
    tabController = TabController(length: 3, vsync: this);
  }

  TabController tabController;

  static List<String> links = [
    "https://i.pinimg.com/originals/cc/18/8c/cc188c604e58cffd36e1d183c7198d21.jpg",
    "https://www.kyoceradocumentsolutions.be/blog/wp-content/uploads/2019/03/iStock-881331810.jpg",
    "https://resources.matcha-jp.com/resize/720x2000/2020/04/23-101958.jpeg"
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Column(
          children: [
            Container(
              margin: EdgeInsets.all(10),
              decoration: BoxDecoration(
                  borderRadius: BorderRadius.circular(10),
                  border: Border.all(width: 2)),
              child: ImageSlider(
                /// Shows the tab indicating circles at the bottom
                showTabIndicator: false,

                /// Cutomize tab's colors
                tabIndicatorColor: Colors.lightBlue,

                /// Customize selected tab's colors
                tabIndicatorSelectedColor: Color.fromARGB(255, 0, 0, 255),

                /// Height of the indicators from the bottom
                tabIndicatorHeight: 16,

                /// Size of the tab indicator circles
                tabIndicatorSize: 16,

                /// tabController for walkthrough or other implementations
                tabController: tabController,

                /// Animation curves of sliding
                curve: Curves.fastOutSlowIn,

                /// Width of the slider
                width: MediaQuery.of(context).size.width,

                /// Height of the slider
                height: 220,

                /// If automatic sliding is required
                autoSlide: false,

                /// Time for automatic sliding
                duration: new Duration(seconds: 6),

                /// If manual sliding is required
                allowManualSlide: true,

                /// Children in slideView to slide
                children: links.map((String link) {
                  return new ClipRRect(
                      borderRadius: BorderRadius.circular(8.0),
                      child: Image.network(
                        link,
                        width: MediaQuery.of(context).size.width,
                        height: 220,
                        fit: BoxFit.fill,
                      ));
                }).toList(),
              ),
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                tabController.index == 0
                    ? Container(
                        width: 0,
                        height: 0,
                      )
                    : RaisedButton(
                        onPressed: () {
                          tabController.animateTo(tabController.index - 1);
                          setState(() {});
                        },
                        child: Text("Previous"),
                      ),
                tabController.index == 2
                    ? Container(
                        width: 0,
                        height: 0,
                      )
                    : RaisedButton(
                        onPressed: () {
                          tabController.animateTo(2);
                          setState(() {});
                        },
                        child: Text("Skip"),
                      ),
                tabController.index == 2
                    ? Container(
                        width: 0,
                        height: 0,
                      )
                    : RaisedButton(
                        onPressed: () {
                          tabController.animateTo(tabController.index + 1);
                          setState(() {});
                        },
                        child: Text("Next"),
                      ),
              ],
            )
          ],
        ));
  }
}

カテゴリー

ソースリポジトリ

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

データはまだありません。