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

ripple_wave のカバー
パッケージ詳細v0.1.5

ripple_wave

シンプルで使いやすく、ウィジェットにラップして美しいリップル効果を作成できるリップルアニメーション

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
1840
いいね数
67
Pub ポイント
150

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

flutter pub add ripple_wave

パッケージ概要

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

RippleWave は、任意のウィジェットに滑らかでカスタマイズ可能なリップルアニメーションを簡単に追加できる軽量な Flutter パッケージです。タッチベースのリップル効果をサポートしており、色、サイズ、持続時間などをカスタマイズ可能で、ボタンやカード、インタラクティブ要素に最適です。シンプルな設計により、最小限のセットアップで、すべての主要プラットフォームで視覚的に魅力的な結果を実現します。既存の UI にスムーズに統合され、動的な視覚的反応を通じてユーザーのフィードバックを強化します。

用途

  • ボタンにリップル効果を追加する
  • アプリにおけるタッチフィードバックの向上
  • インタラクティブなUI要素の作成
  • ダッシュボードの視覚的関与の向上
  • カードタップのアニメーション
  • モダンなアプリインターフェースの設計

主な機能

  • Widget との簡単な統合
  • カスタマイズ可能なリップルの色とサイズ
  • スムーズなアニメーションパフォーマンス
  • クロスプラットフォーム対応
  • 設定可能な期間と遅延
  • タッチベースのリップルトリガー

適している対象

  • 視覚的な洗練を求めるUIデザイナー
  • インタラクティブなアプリを開発する開発者
  • 繊細なフィードバック効果を必要とするプロジェクト
  • タッチインターフェースを備えたモバイルおよびウェブアプリケーション
  • 迅速な実装を重視するチーム

注意事項

  • 低性能デバイスでのパフォーマンスに影響を与える可能性があります
  • 基本的なリップルプロパティ以外のカスタマイズは限られている
  • 複雑なアニメーションには適していません
  • ジェスチャーイベントの手動処理が必要です
  • 視覚的な混雑を避けるために控えめに使用することをお勧めします
  • プラットフォーム固有のレンダリング動作に依存しています

元の README

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

Simple and easy to use ripple animation that can be wrapped in widgets to create beautiful ripple effects.

Features

Installing

Add ripple_wave to your pubspec.yaml file.

dependencies:
  ripple_wave:

Import ripple_wave in files that it will be used.

import 'package:ripple_wave/ripple_wave.dart';

Usage

To use this package, add ripple_wave as a dependency in your pubspec.yaml file.

Then wrap your desired widget with RippleWave widget to get the ripple animation.

Usage without repeated animation:

class MyHomePage extends StatelessWidget {
  const MyHomePage({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: RippleWave(
        color: Colors.green,
        repeat: false,
        child: const Icon(
          Icons.emoji_emotions,
          size: 100,
          color: Colors.white,
        ),
      ),
    );
  }
}

Usage with tween effect on child widget of the RippleWave:

class MyHomePage extends StatelessWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: RippleWave(
        color: Colors.red,
        childTween: Tween(begin: 0.2, end: 1),
        child: const Icon(
          Icons.emoji_emotions,
          size: 100,
          color: Colors.white,
        ),
      ),
    );
  }
}

Usage with animation controller to manually start or stop the animation:

class DemoPage extends StatefulWidget {
  const DemoPage({Key? key}) : super(key: key);

  @override
  State<DemoPage> createState() => _DemoPageState();
}

late AnimationController animationController;

void start() {
  animationController.repeat();
}

void stop() {
  animationController.stop();
}

class _DemoPageState extends State<DemoPage>
    with SingleTickerProviderStateMixin {
  @override
  void initState() {
    animationController = AnimationController(
      duration: const Duration(seconds: 3),
      vsync: this,
    );
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Ripple Demo"),
      ),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          RippleWave(
            childTween: Tween(begin: 0.1, end: 1.0),
            color: Colors.deepPurpleAccent,
            repeat: false,
            animationController: animationController,
            child: const Icon(
              Icons.emoji_emotions,
              size: 100,
              color: Colors.white,
            ),
          ),
          const SizedBox(
            height: 200,
          ),
          TextButton(
            onPressed: () {
              start();
            },
            child: const Text(
              'Start animation',
            ),
          ),
          const SizedBox(
            height: 40,
          ),
          TextButton(
            onPressed: () {
              stop();
            },
            child: const Text(
              'Stop animation',
            ),
          ),
        ],
      ),
    );
  }
}

カテゴリー

ソースリポジトリ

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

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