Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.0.5

visibility_aware_state

Ein Zustand für StatefulWidgets, der über seine Sichtbarkeit informiert ist.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
1140
Likes
34
Pub-Punkte
150

Paket installieren

flutter pub add visibility_aware_state

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein Flutter-Paket, das StatefulWidget erweitert, um den Zustand basierend auf der Sichtbarkeit des Widgets zu verwalten. Es erkennt automatisch, wann ein Widget im Sichtbereich sichtbar oder unsichtbar wird, was eine effiziente Ressourcenverwaltung und optimierte Leistung ermöglicht. Ideal für Animationen, Videowiedergabe oder Datenabrufe, die nur dann erfolgen sollen, wenn der Benutzer das Widget sehen kann. Das Paket lässt sich nahtlos in bestehende StatefulWidgets integrieren, ohne dass signifikante Codeänderungen erforderlich sind.

Anwendungsfälle

  • Animationen basierend auf Sichtbarkeit optimieren
  • Videound Audiospielsteuerung
  • Inhalte auf lazy loading
  • Verringern des CPU-Gebrauchs für Widgets außerhalb des Bildschirms
  • Behandlung von scrollbasierten Auslösern

Hauptmerkmale

  • Automatische Sichtbarkeitsdetektion
  • Minimales Boilerplate
  • Kompatibel mit bestehenden StatefulWidgets
  • Unterstützt alle wichtigen Plattformen
  • Effizientes Ressourcenmanagement

Geeignet für

  • Entwickler, die die App-Leistung optimieren
  • Apps mit scrollbaren Listen oder Karussellen
  • medienintensive Anwendungen
  • Apps, die Lazy Loading benötigen

Hinweise

  • Kann in komplexen verschachtelten Layouts nicht wie erwartet funktionieren
  • Erfordert sorgfältige Behandlung in benutzerdefinierten Renderobjekten
  • Beschränkt auf Sichtbarkeit innerhalb des Ansichtsfensters
  • Nicht geeignet für die Zustandsverfolgung außerhalb der Benutzeroberfläche
  • Abhängig von der korrekten Widget-Baumstruktur

Original-README

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

visibility_aware_state

A state for StatefulWidgets that is aware of its visibility.

That can be useful for screen view tracking or e.g. if your app shows files it can be used to automatically refresh the files when the app is reopened again.

In Android, Activity classes had the onResume() method. In Flutter widgets this is missing. This library offers void onVisibilityChanged(WidgetVisibility visibility) to do something similar.

Features

Notice when:

  • the app is put in the background or brought out of the background
  • the widget initially becomes visible
  • the widget becomes invisible (a new page is pushed)
  • the widget is removed from stack
  • the widget becomes visible again (e.g. back button on Android is pressed)

Close the current screen via finish() like in Android.

Check if the widget is currently visible using bool isVisible().

Getting started

In the pubspec.yaml of your flutter project, add the following dependency:

dependencies:
  ...
  visibility_aware_state: <latest_version>

In your library add the following import:

import 'package:visibility_aware_state/visibility_aware_state.dart';

For help getting started with Flutter, view the online documentation.

Example

class Example extends StatefulWidget {
  @override
  _ExampleState createState() => _ExampleState();
}

class _ExampleState extends VisibilityAwareState<Example> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Example app'),
      ),
      body: Center(
        child: Text('Welcome to visibility_aware_state example app.'),
      ),
    );
  }

  @override
  void onVisibilityChanged(WidgetVisibility visibility) {
    // TODO: Use visibility
    super.onVisibilityChanged(visibility);
  }
}

Here is a specific example where the visibility is used for screen view tracking:

import 'package:flutter/widgets.dart';
import 'package:visibility_aware_state/visibility_aware_state.dart';

import 'tracker.dart';

abstract class ScreenState<T extends StatefulWidget>
    extends VisibilityAwareState<T> with Screen {

  @override
  void onVisibilityChanged(WidgetVisibility visibility) {
    if (visibility == WidgetVisibility.VISIBLE) {
      Tracker().trackScreen(this);
    }
    super.onVisibilityChanged(visibility);
  }

  @override
  String screenName() {
    return runtimeType.toString();
  }

}

mixin Screen {

  String screenName();

}

Contributions

Feel free to contribute to this project.

If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue. If you fixed a bug or implemented a new feature, please send a pull request.

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.