Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.0.5+1

overlay_container

Um widget do Flutter que renderiza seu filho fora da hierarquia original de widgets.

Downloads em 30 dias
3
Curtidas
50
Pontos Pub
40

Instalar pacote

flutter pub add overlay_container

Visão geral do pacote

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

OverlayContainer é um widget do Flutter que renderiza seu filho fora da hierarquia de widgets original, permitindo que elementos sejam posicionados independentemente do layout do pai. Isso é particularmente útil para criar sobreposições, dicas de ferramentas ou componentes de interface flutuantes que precisam aparecer acima de outros widgets sem serem restritos pelos limites do contêiner. Ele aproveita o mecanismo Overlay do Flutter para alcançar esse comportamento, fornecendo uma maneira limpa e eficiente de gerenciar elementos de interface em camadas. O pacote é leve e projetado para simplicidade, tornando-se ideal para desenvolvedores que buscam controle preciso sobre o posicionamento de widgets em layouts complexos.

Casos de uso

  • Criando botões de ação flutuantes
  • Exibindo dicas de ferramentas ou popovers
  • Implementando diálogos modais personalizados
  • Construindo menus sobrepostos
  • Posicionando elementos da interface além das restrições do pai

Principais recursos

  • Renderiza filhos fora da hierarquia do pai
  • Utiliza o Overlay do Flutter para renderização eficiente
  • API simples com configuração mínima
  • Suporta posicionamento absoluto
  • Funciona sem problemas com árvores de widget existentes

Indicado para

  • Desenvolvedores que precisam de funcionalidades avançadas de sobreposição
  • Designers de UI implementando interfaces em camadas
  • Projetos que exigem elementos flutuantes dinâmicos
  • Aplicativos com sobreposições interativas complexas
  • Equipes que priorizam código limpo e sustentável

Considerações

  • Pode exigir manipulação cuidadosa de foco e gestos
  • Não adequado para estruturas de layout estático
  • Impacto potencial no desempenho com muitos overlays
  • Necessita de descarte adequado de entradas de sobreposição
  • Otimizações limitadas específicas para a plataforma

README original

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

overlay_container

Pub Package License

A flutter widget which renders its child outside the original widget hierarchy.

Demo.

Demo

This demo is present as an example here. You can also checkout the examples folder.

Description.

The child passed to this widget is rendered outside the widget hierarchy as an overlay to the exisiting widget tree. As a result this widget is highly suitable for building custom dropdown options, autocomplete suggestions, dialogs, etc. Think of it as widget placed absolutely and having a positive z-index over the rest of the widget tree. It is actually a friendly wrapper over the Flutter's Overlay and OverlayEntry APIs.

If you've ever used react, this tries to do what React Portal does, in a way.

Example.

import 'package:flutter/material.dart';
import 'package:overlay_container/overlay_container.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Overlay Container Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  // Need to maintain a "show" state either locally or inside
  // a bloc.
  bool _dropdownShown = false;

  void _toggleDropdown() {
    setState(() {
      _dropdownShown = !_dropdownShown;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Overlay Container Demo Page'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(20),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            RaisedButton(
              onPressed: _toggleDropdown,
              child: Column(
                children: <Widget>[
                  Text("Dropdown button"),
                ],
              ),
            ),
            // By default the overlay (since this is a Column) will
            // be added right below the raised button
            // but outside the widget tree.
            // We can change that by supplying a "position".
            OverlayContainer(
              show: _dropdownShown,
              // Let's position this overlay to the right of the button.
              position: OverlayContainerPosition(
                // Left position.
                150,
                // Bottom position.
                45,
              ),
              // The content inside the overlay.
              child: Container(
                height: 70,
                padding: const EdgeInsets.all(20),
                margin: const EdgeInsets.only(top: 5),
                decoration: BoxDecoration(
                  color: Colors.white,
                  boxShadow: <BoxShadow>[
                    BoxShadow(
                      color: Colors.grey[300],
                      blurRadius: 3,
                      spreadRadius: 6,
                    )
                  ],
                ),
                child: Text("I render outside the \nwidget hierarchy."),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

A more elaborate example is found here.

Installation.

  • Instructions are here.

Inspiration

License.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.