Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.1.1

awesome_shake_widget

Ein Flutter-Widget, das eine Schüttelanimation und optionale Vibrationseffekte bereitstellt, ideal für ungültige Formulare, Aufmerksamkeitsaufforderungen und Benutzerinteraktionsrückmeldungen.

AndroidiOS
30-Tage-Downloads
1050
Likes
21
Pub-Punkte
160

Paket installieren

flutter pub add awesome_shake_widget

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein Flutter-Widget, das Shaking-Animationen und optionales Vibration Feedback zu UI-Elementen hinzufügt. Ideal zur Aufmerksamkeit auf ungültige Formularfelder, zur Aufforderung von Benutzeraktionen oder zur Bereitstellung interaktiver Rückmeldungen. Das Widget ist einfach zu integrieren und unterstützt sowohl Android als auch iOS. Verbessert die Benutzererfahrung durch visuelle und haptische Reaktionen mit minimalem Aufwand. Für Einfachheit und Effektivität in gängigen Interaktionsszenarien konzipiert.

Anwendungsfälle

  • Formularvalidierungs-Hinweise
  • Benutzereingabeprompt
  • Interaktive Buttonrückmeldung
  • Fehlerzustandsbenachrichtigungen
  • Onboarding-Anleitung

Hauptmerkmale

  • Schwunganimationseffekt
  • Optionale Vibrationssupport
  • Plattformübergreifende Kompatibilität
  • Einfache API-Integration
  • Benutzerdefinierbare Animationsdauer
  • Unterstützung für responsive Design

Geeignet für

  • Entwickler, die interaktive Formulare erstellen
  • UX-Designer verbessern Feedback-Mechanismen
  • Apps, die aufmerksamkeitsstarke Hinweise erfordern
  • Mobile Anwendungen für Android und iOS
  • Projekte, die sich auf intuitive Benutzerinteraktionen konzentrieren

Hinweise

  • Kann bei übermäßiger Verwendung Ablenkung verursachen
  • Vibration erfordert auf einigen Geräten eine Berechtigung
  • Die Animationsleistung hängt von den Gerätefähigkeiten ab
  • Nicht geeignet für zugänglichkeitskritische Komponenten
  • Am besten sparsam verwenden, um die UX-Klarheit zu gewährleisten

Original-README

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

🚀 awesome_shake_widget

A customizable Flutter widget that adds shake animations with haptic and vibration feedback. Perfect for invalid forms, error indicators, or drawing attention to UI components.

Pub Version Platform License


✨ Features

  • Shake any widget on demand
  • Built-in presets: light, medium, heavy
  • Optional vibration (custom or haptic)
  • Fully customizable offset, pattern & intensities
  • Easy to trigger using a GlobalKey

📦 Installation

dependencies:
  awesome_shake_widget: ^1.0.1

Run:

flutter pub get

🧪 Usage

1️⃣ Standard (Shake + Vibration)

By using the built-in presets — light, medium, heavy and custom — you can quickly apply different vibration intensities and patterns, perfectly paired with UI shake animations for a dynamic and responsive user experience.

final shakeKey = GlobalKey<ShakeWidgetState>();

ShakeWidget(
  key: shakeKey,
  preset: ShakePreset.medium,
  child: Text("Tap Me"),
);

// Somewhere else, e.g., on button press:
shakeKey.currentState?.shake();

2️⃣ Shake Only (No Vibration)

If you only want the visual shake effect without vibration, you can set vibrationType to VibrationType.none using the ShakeConfig. To customize the intensity of the shake, adjust the offset value — higher values will produce a stronger visual effect.

ShakeWidget(
  key: shakeKey,
  customConfig: ShakeConfig(
    offset: 20,
    vibrationType: VibrationType.none,
  ),
  child: Icon(Icons.info),
);

3️⃣ Advanced Configuration: Full Control Over Visual and Vibration Effects

You can also create custom vibration patterns by setting vibrationType to VibrationType.custom, and providing your own pattern and intensities. This gives you full control over the vibration behavior.

ShakeWidget(
key: shakeKey,
customConfig: ShakeConfig(
offset: 32,
pattern: [0, 50, 100, 50],
intensities: [255, 0, 255, 0],
vibrationType: VibrationType.custom,
),
child: Text("Custom Shake!"),
);

Trigger it via:

shakeKey.currentState?.shake();

🎥 Demo

This demo shows how you can apply shake animations to:

  • ✅ Buttons
  • 💬 Dialogs
  • 🖼️ Images
  • ✏️ Text fields
  • 📦 Any widget

🧩 API Reference

Enum: ShakePreset
Value Offset Vibration
light 8 Haptic
medium 16 Haptic
heavy 24 Patterned Vibe
custom User-defined Custom

Enum: VibrationType
  • none – no vibration
  • haptic – system haptic feedback
  • custom – vibration with pattern/intensity (Android only)

ShakeConfig
ShakeConfig({
  required double offset,
  List<int>? pattern,
  List<int>? intensities,
  VibrationType vibrationType = VibrationType.haptic,
});

💡 Example App

Clone and run the example:

cd example
flutter run

Example main.dart:

import 'package:flutter/material.dart';
import 'package:awesome_shake_widget/shake_widget.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: ShakeDemo(),
    );
  }
}

class ShakeDemo extends StatelessWidget {
  final shakeKey = GlobalKey<ShakeWidgetState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Shake Demo')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ShakeWidget(
              key: shakeKey,
              preset: ShakePreset.heavy,
              child: const Icon(Icons.warning, size: 64),
            ),
            const SizedBox(height: 32),
            ElevatedButton(
              onPressed: () => shakeKey.currentState?.shake(),
              child: const Text("Shake it!"),
            ),
          ],
        ),
      ),
    );
  }
}

📄 License

MIT © Juanma Del Boca

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.