Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.2.3

morpheus

Um pacote Flutter para implementar facilmente transições de navegação do Material Design.

Downloads em 30 dias
107
Curtidas
37
Pontos Pub
70

Instalar pacote

flutter pub add morpheus

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Morpheus é um pacote Flutter projetado para simplificar a implementação de transições de navegação do Material Design. Ele fornece APIs intuitivas para criar transições de rota suaves, consistentes e visualmente atraentes que estão alinhadas com as diretrizes do Material Design. Ao abstrair a lógica complexa de animação, permite que os desenvolvedores melhorem a experiência do usuário com código mínimo. O pacote oferece integração sem problemas em aplicativos Flutter existentes e se concentra em fornecer comportamentos de navegação refinados diretamente da caixa.

Casos de uso

  • Implementando transições de página com estilo Material Design
  • Melhorando a navegação do aplicativo com animações suaves
  • Adicionando comportamento de transição consistente entre telas
  • Melhorando a experiência do usuário em aplicativos móveis
  • Personalizando transições de rota com esforço mínimo

Principais recursos

  • Padrões de transição do Material Design embutidos
  • API simples para animações de navegação comuns
  • Comportamento de transição consistente e previsível
  • Leve e fácil de integrar
  • Suporta transições de push e pop

Indicado para

  • Desenvolvedores Flutter criando aplicativos com Material Design
  • Equipes que priorizam UX com navegação suave
  • Aplicativos que exigem transições de rota padronizadas
  • Desenvolvedores procurando implementação rápida de transição
  • Projetos focados em polimento visual e consistência

Considerações

  • Personalização limitada além das transições padrão do Material
  • Sem suporte para sistemas de design não-Material
  • Pode exigir estilos adicionais para casos de uso não padrão
  • Não otimizado para fluxos de trabalho de animação altamente complexos ou personalizados

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

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

}

Categorias

Repositório-fonte

Projetos que usam este pacote