Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.2.3

morpheus

Ein Flutter-Paket zur einfachen Implementierung von Material Design-Navigationsübergängen.

30-Tage-Downloads
107
Likes
37
Pub-Punkte
70

Paket installieren

flutter pub add morpheus

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Morpheus ist ein Flutter-Paket, das die Implementierung von Material Design-Navigationsübergängen vereinfacht. Es bietet intuitive APIs zum Erstellen reibungsloser, konsistenter und visuell ansprechender Routenübergänge, die den Material Design-Richtlinien entsprechen. Durch Abstraktion komplexer Animationslogik ermöglicht es Entwicklern, die Benutzererfahrung mit minimalem Code zu verbessern. Das Paket unterstützt eine nahtlose Integration in bestehende Flutter-Anwendungen und konzentriert sich darauf, polierte Navigationsverhalten direkt aus der Box bereitzustellen.

Anwendungsfälle

  • Implementierung von Material Design-artigen Seitenübergängen
  • Verbesserung der App-Navigation mit fließenden Animationen
  • Konsistentes Übergangsverhalten zwischen Bildschirmen hinzufügen
  • Verbesserung der Benutzererfahrung in mobilen Apps
  • Route-Übergänge mit minimalem Aufwand anpassen

Hauptmerkmale

  • Eingebaute Material-Design-Übergangsmuster
  • Einfache API für gängige Navigationsanimationen
  • Konsistentes und vorhersagbare Übergangsverhalten
  • Leichtgewichtig und einfach zu integrieren
  • Unterstützt sowohl Push- als auch Pop-Übergänge

Geeignet für

  • Flutter-Entwickler, die Material-Design-Apps erstellen
  • Teams, die UX mit reibungsloser Navigation priorisieren
  • Apps, die standardisierte Routenübergänge erfordern
  • Entwickler, die eine schnelle Übergangsimplementierung suchen
  • Projekte, die sich auf visuelle Aufwertung und Konsistenz konzentrieren

Hinweise

  • Begrenzte Anpassungsmöglichkeiten jenseits standardmäßiger Material-Übergänge
  • Keine Unterstützung für nicht-Material-Design-Systeme
  • Kann zusätzliche Stilierung für nicht-standardmäßige Anwendungsfälle erfordern
  • Nicht für hochkomplexe oder benutzerdefinierte Animationsworkflows optimiert

Original-README

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

Morpheus

Pub Actions Status

A Flutter package for easily implementing Material Design navigation transitions.

Examples

Parent-child transition

You can use MorpheusPageRoute to create a parent-child transition between two screens.

Parent-child gif
import 'package:morpheus/morpheus.dart';

class MyList extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: 10,
      itemBuilder: (context, index) {
        final _parentKey = GlobalKey();
        return ListTile(
          key: _parentKey,
          leading: CircleAvatar(child: Text((index + 1).toString())),
          title: Text('Item ${index + 1}'),
          onTap: () => _handleTap(context, _parentKey),
        );
      }
    );
  }

  void _handleTap(BuildContext context, GlobalKey parentKey) {
    Navigator.of(context).push(MorpheusPageRoute(
      builder: (context) => Scaffold(),
      parentKey: parentKey,
    ));
  }

}
Top-level transition

You can use the MorpheusTabView widget to create a top-level transition when the child widget changes.

Top-level gif
import 'package:morpheus/morpheus.dart';

class MyTabScreen extends StatefulWidget {

  @override
  _MyTabScreenState createState() => _MyTabScreenState();

}

class _MyTabScreenState extends State<MyTabScreen> {

  final List<Widget> _screens = [
    Scaffold(backgroundColor: Colors.green),
    Scaffold(backgroundColor: Colors.red),
    Scaffold(backgroundColor: Colors.blue),
  ];
  int _currentIndex = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: MorpheusTabView(
        child: _screens[_currentIndex]
      ),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: _currentIndex,
        items: [
          BottomNavigationBarItem(
            icon: Icon(Icons.trending_up),
            title: Text('Trending'),
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.star),
            title: Text('Saved'),
          ),
        ],
        onTap: (index) {
          if (index != _currentIndex) {
            setState(() => _currentIndex = index);
          }
        },
      ),
    );
  }

}

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden