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

パッケージ詳細v1.2.3

morpheus

Material Design のナビゲーション遷移を簡単に実装するためのFlutterパッケージ。

30日間ダウンロード
107
いいね数
37
Pub ポイント
70

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

flutter pub add morpheus

パッケージ概要

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

Morpheus は、Material Design のナビゲーション遷移の実装を簡素化することを目的とした Flutter パッケージです。Material Design のガイドラインに準拠した滑らかで一貫性があり、視覚的に魅力的なルート遷移を簡単に作成できる直感的な API を提供します。複雑なアニメーションロジックを抽象化することで、開発者は最小限のコードでユーザー体験を向上させることができます。既存の Flutter アプリへのシームレスな統合をサポートし、出荷時から洗練されたナビゲーション動作を提供することに焦点を当てています。

用途

  • マテリアルデザイン風のページ遷移の実装
  • スムーズなアニメーションでアプリナビゲーションを向上させる
  • スクリーン間で一貫した遷移動作を追加する
  • モバイルアプリにおけるユーザー体験の向上
  • 最小限の努力でルート遷移をカスタマイズする

主な機能

  • 組み込みの Material Design トランジションパターン
  • 一般的なナビゲーションアニメーション用のシンプルな API
  • 一貫性があり予測可能な遷移動作
  • 軽量で統合が簡単
  • プッシュとポップのトランジションを両方サポート

適している対象

  • Material Design アプリを構築する Flutter 開発者
  • スムーズなナビゲーションを重視するUXのチーム
  • 標準化されたルート遷移を必要とするアプリ
  • 迅速な遷移実装を求める開発者
  • 視覚的な仕上げと一貫性に焦点を当てるプロジェクト

注意事項

  • 標準的なマテリアル遷移を超えるカスタマイズは限られている
  • 非マテリアルデザインシステムのサポートなし
  • 非標準的な使用ケースには追加のスタイル設定が必要になる場合があります
  • 非常に複雑なカスタムアニメーションワークフローには最適化されていません

元の README

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

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);
          }
        },
      ),
    );
  }

}

カテゴリー

ソースリポジトリ

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