Buscar pacotes, repositórios e categorias de apps

Capa de measure_size
Detalhes do pacotev5.0.2

measure_size

Um widget que fornece um retorno de chamada acionado quando seu tamanho muda

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
15,4 mil
Curtidas
40
Pontos Pub
160

Instalar pacote

flutter pub add measure_size

Visão geral do pacote

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

O pacote measure_size é um widget do Flutter que dispara uma função de retorno sempre que seu tamanho muda, permitindo ajustes dinâmicos no layout com base nas dimensões reais renderizadas. Ele envolve um widget filho e monitora seu tamanho durante as fases de construção e layout, sendo ideal para designs responsivos ou animações que dependem de medições precisas. O pacote funciona em todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, garantindo comportamento consistente. É particularmente útil quando você precisa reagir às mudanças no tamanho do container sem depender de valores fixos.

Casos de uso

  • UI responsiva com dimensionamento dinâmico
  • Animações baseadas nas dimensões do widget
  • Depuração de layout
  • Renderização de conteúdo dinâmico
  • Monitoramento em tempo real do tamanho

Principais recursos

  • Dispara o retorno de chamada na mudança de tamanho
  • Compatibilidade multiplataforma
  • Integração simples com widgets existentes
  • Suporta todas as plataformas do Flutter
  • Sem dependências externas

Indicado para

  • Desenvolvedores que precisam de feedback em tempo real sobre o tamanho
  • Componentes da interface que exigem layouts adaptativos
  • Teste e depuração de problemas de layout
  • Projetos com sistemas de design dinâmicos ou fluidos

Considerações

  • Pode afetar o desempenho se usado em excesso
  • O callback pode ser disparado várias vezes durante o layout
  • Não adequado para requisitos de tamanho estático
  • Requer manipulação cuidadosa em árvores de widget complexas
  • Limitado a mudanças de tamanho, não posição ou deslocamento

README original

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

measure_size

A Flutter package for efficiently measuring widget sizes and building size-aware, adaptive layouts with minimal overhead.


Measuring text and drawing an overlay with matching size


MeasureSize MeasureSizeBuilder
Purpose Monitor size changes Prototype-driven layout
Callback timing Post-frame During layout (invokeLayoutCallback)
Measurements Single widget Multiple prototypes
Use case Reactive to size changes Proactive layout decisions
Complexity Simple Advanced
Performance Good Excellent (single pass)
PreferredSizeWidget limitation Does not work First frame problematic

import 'package:measure_size/measure_size.dart';

Widget child = Text('Lorem ipsum dolor sit amet');

MeasureSize(
    onChange: (Size newSize) {
        /// [newSize] will be the displayed size of [Widget child]
    },
    child: child,
);

MeasureSizeBuilder<String>(
    prototypeConstraints: (constraints) => BoxConstraints(
      minWidth: 0,
      maxWidth: constraints.maxWidth,
      minHeight: 0,
      maxHeight: double.infinity,
    ),
    prototypes: [
      PrototypeId(
        id: 'lorem',
        child: child,
      ),
    ],
    builder: (context, sizes) {
      // [sizes['lorem']] will be the layed out size of [Widget child]
      return child;
    }
);

MeasureSize

Required
  • Widget child - This widget will be displayed and and measured.
Optional
  • void onChange(Size newSize) - A callback that is fired exactly once after the first frame of the child widget is rendered.

MeasureSizeBuilder<T>

Required
  • List<PrototypeId<T>> prototypes - Wrap widgets you'd like to measure with PrototypeId and provide a unique identifier for each widget.
  • PrototypeWidgetBuilder<T> builder - A builder function that contains the sizes of all prototypes.
  • PrototypeConstraintCalculator prototypeConstraints - Constraints to be assigned to each prototype widget.

Example

A demonstration can be found in the example directory. To run the example:

flutter run example/main.dart

Credits

Categorias

Repositório-fonte

Projetos que usam este pacote