Pakete, Repositories und App-Kategorien suchen

Cover von measure_size
Paketdetailsv5.0.2

measure_size

Ein Widget, das einen Callback auslöst, wenn sich seine Größe ändert

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
15.400
Likes
40
Pub-Punkte
160

Paket installieren

flutter pub add measure_size

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das measure_size-Paket ist ein Flutter-Widget, das einen Rückruf auslöst, sobald sich seine Größe ändert und so dynamische Layoutanpassungen basierend auf den tatsächlichen gerenderten Abmessungen ermöglicht. Es umschließt ein Kind-Widget und überwacht dessen Größe während der Build- und Layoutphasen, wodurch es ideal für responsive Designs oder Animationen ist, die auf präzise Messungen angewiesen sind. Das Paket funktioniert auf allen wichtigen Plattformen wie Android, iOS, Web, macOS, Windows und Linux und gewährleistet konsistentes Verhalten. Es ist besonders nützlich, wenn Sie auf Änderungen der Containergröße reagieren müssen, ohne sich auf feste Werte zu verlassen.

Anwendungsfälle

  • Reaktive Benutzeroberfläche mit dynamischer Größenanpassung
  • Animationen basierend auf Widget-Abmessungen
  • Layout-Debugging
  • Dynamische Inhaltsdarstellung
  • Echtzeit-Größenüberwachung

Hauptmerkmale

  • Triggers Callback bei Größenänderung
  • Plattformübergreifende Kompatibilität
  • Einfache Integration mit bestehenden Widgets
  • Unterstützt alle Flutter-Plattformen
  • Keine externen Abhängigkeiten

Geeignet für

  • Entwickler, die Echtzeit-Größenrückmeldung benötigen
  • UI-Komponenten, die adaptive Layouts erfordern
  • Testen und Debuggen von Layoutproblemen
  • Projekte mit dynamischen oder fließenden Designsystemen

Hinweise

  • Kann die Leistung beeinträchtigen, wenn übermäßig verwendet
  • Der Callback kann während der Layoutphase mehrmals ausgelöst werden
  • Nicht geeignet für statische Größenanforderungen
  • Erfordert sorgfältige Handhabung in komplexen Widget-Bäumen
  • Beschränkt auf Größenänderungen, nicht auf Position oder Versatz

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

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

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden