Pakete, Repositories und App-Kategorien suchen

Cover von live_text
Paketdetailsv0.0.7

live_text

Ein Flutter-Paket, das die einfachste Möglichkeit bietet, Text-Widgets in der Benutzeroberfläche zu aktualisieren.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
19
Likes
26
Pub-Punkte
140

Paket installieren

flutter pub add live_text

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

LiveText ist ein Flutter-Paket, das die dynamische Aktualisierung von Text in der Benutzeroberfläche vereinfachen soll. Es ermöglicht Echtzeit- und reibungslose Textänderungen mit minimalem Code und ist ideal für Animationen, Zähler oder alle Szenarien, die eine responsive Textdarstellung erfordern. Für einfache Handhabung entwickelt, integriert es sich nahtlos in alle wichtigen Plattformen wie Android, iOS, Web, macOS, Windows und Linux. Das Paket konzentriert sich auf Leistung und Einfachheit und ist daher perfekt für Entwickler, die effiziente Textmanipulation ohne komplizierte Einrichtung suchen. Sein leichter Aufbau sorgt für schnelle Darstellung und geringen Overhead.

Anwendungsfälle

  • Echtzeit-Zähler
  • Animierte Textübergänge
  • Dynamische Beschriftungsaktualisierungen
  • Interaktive Benutzeroberflächenelemente
  • Live-Datenanzeige

Hauptmerkmale

  • Einfache API
  • Plattformübergreifende Unterstützung
  • Glatte Textaktualisierungen
  • Niedriger Speicherverbrauch
  • Minimales Boilerplate
  • Eingebaute Animationsverarbeitung

Geeignet für

  • Anfänger-Flutter-Entwickler
  • Apps mit dynamischer Text
  • Animationen, die Text betreffen
  • leistungsensitive Anwendungen
  • Schnelle Benutzeroberflächenverbesserungen

Hinweise

  • Beschränkt auf Textaktualisierungen
  • Nicht geeignet für komplexe Widgets
  • Kann zusätzliche Stilisierung erfordern
  • Am besten geeignet für einfache Textszenarien
  • Keine integrierten Textformatierungsoptionen

Original-README

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

Buy Me A Coffee

pub package

:star: Updating Text widget made simple :star:

Have you stumble upon a situations where you simply need to update UI text without dealing with state management techniques? If so, this package is a perfect fit for you.

Features

  • [X] Updates text without any hassle.
  • [X] Provides call back with old and new value of your text widget.
  • [X] Reset to initial value whenever you want.

Getting started

Add live_text to your pubspec.yaml file and start making your text live.

Installation

Just add live_text as a dependency in your pubspec.yaml file.

dependencies:
  live_text: <Latest Version>

Usage

  import 'package:live_text/live_text.dart';

Simple counter example.

  • Create LiveTextController instance
    LiveTextController counterLiveTextController = LiveTextController(initialValue: "0");
    
  • Create LiveText widget and provide LiveTextController that we just created
     LiveText(
                style: Theme.of(context).textTheme.headlineMedium,
                liveTextController: counterLiveTextController,
              ),
    
  • Now provide following call backs on increase and decrease button
      void _incrementCounter() {
    counterLiveTextController.setValue =
        (int.parse(counterLiveTextController.getValue) + 1).toString();
    }
    
     void _decrementCounter() {
      counterLiveTextController.setValue =
          (int.parse(counterLiveTextController.getValue) - 1).toString();
    }
    

Timer example.

  • Following is the full example code for Timer app using live_text
import 'dart:async';

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

class TimerExample extends StatelessWidget {
  TimerExample({super.key});

  late LiveTextController timerLiveTextController = LiveTextController(
      initialValue: "00:00",
      onValueChanged: (String oldValue, String newValue) {
        print("Timer");

        print("Old Value $oldValue");
        print("New Value $newValue");
      });

  Timer? timer;

  void _toggleTimer() {
    if (timer == null) {
      DateTime futureTime = DateTime.now().add(const Duration(seconds: 120));

      timer ??= Timer.periodic(const Duration(milliseconds: 100), (_) {
        DateTime latestTime = DateTime.now();
        if (latestTime.isBefore(futureTime)) {
          timerLiveTextController.setValue =
              formatHHMMSS(futureTime.difference(latestTime).inSeconds);
        } else {
          _clearTimer();
        }
      });
    } else {
      _clearTimer();
    }
  }

  void _clearTimer() {
    timer?.cancel();
    timer = null;
    timerLiveTextController.resetValue();
  }

  String formatHHMMSS(int seconds) {
    final hours = (seconds / 3600).truncate();
    seconds = (seconds % 3600).truncate();
    final minutes = (seconds / 60).truncate();

    final hoursStr = (hours).toString().padLeft(2, '0');
    final minutesStr = (minutes).toString().padLeft(2, '0');
    final secondsStr = (seconds % 60).toString().padLeft(2, '0');

    if (hours == 0) {
      return '$minutesStr:$secondsStr';
    }

    return '$hoursStr:$minutesStr:$secondsStr';
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: const Text("Timer"),
      ),
      body: SafeArea(
        child: Center(
          child: Column(
            children: <Widget>[
              const Spacer(),
              LiveText(
                style: Theme.of(context).textTheme.headlineLarge,
                liveTextController: timerLiveTextController,
              ),
              const Spacer(),
              Padding(
                padding: const EdgeInsets.symmetric(horizontal: 16.0),
                child: Row(
                  children: [
                    const Spacer(),
                    FloatingActionButton(
                      onPressed: _toggleTimer,
                      tooltip: 'Start Timer',
                      child: const Icon(Icons.timer_outlined),
                    ),
                    const SizedBox(width: 10),
                    FloatingActionButton(
                      onPressed: _clearTimer,
                      tooltip: 'Start Timer',
                      child: const Icon(Icons.timer_off_outlined),
                    ),
                  ],
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Additional information

We will be more than happy for your contributions.
Please contribute to live_text this github repo.

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.