패키지, 저장소 및 앱 카테고리 검색

패키지 상세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 스타일의 페이지 전환 구현
  • 부드러운 애니메이션으로 앱 탐색 개선
  • 화면 간 일관된 전환 동작 추가
  • 모바일 앱에서 사용자 경험 향상
  • 최소한의 노력으로 경로 전환 맞춤 설정

주요 기능

  • 내장된 Material Design 전환 패턴
  • 일반적인 탐색 애니메이션을 위한 간단한 API
  • 일관되고 예측 가능한 전환 동작
  • 경량이며 통합이 쉬움
  • 푸시 및 팝 전환을 모두 지원합니다

적합한 대상

  • Material Design 앱을 구축하는 Flutter 개발자
  • 원활한 탐색을 우선시하는 사용자 경험을 중시하는 팀
  • 표준화된 경로 전환을 필요로 하는 앱
  • 빠른 전환 구현을 찾는 개발자
  • 시각적 완성도와 일관성에 중점을 둔 프로젝트

고려 사항

  • 표준 매터리얼 전환 외에 제한된 사용자 정의
  • 비 매터리얼 디자인 시스템에 대한 지원 없음
  • 비표준 사용 사례를 위해 추가적인 스타일링이 필요할 수 있습니다
  • 매우 복잡하거나 사용자 정의 애니메이션 워크플로에 최적화되지 않음

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

}

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트