FLUTTER ECOSYSTEM

SilentCatD/animated_text_lerp

用于 Flutter 中动画文本的包。适用于货币值增加/减少的动画或文本内容的插值动画。

animated_text_lerp 项目封面
Stars
7
Forks
1
最近推送(UTC)
2024年12月23日
项目状态
未归档
SilentCatDev GitHub avatar
GITHUB User

SilentCatDev ↗

MIT Licensed packages developer @ HCMUS ngocphuocnguyen312@gmail.com

Ho Chi Minh City, Viet Nam
语言Dart

此仓库发布的插件

使用的依赖

依赖清单 3 项
  • flutter{"sdk":"flutter"}
  • flutter_test开发依赖{"sdk":"flutter"}
  • flutter_lints开发依赖^3.0.0

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

展开 / 收起项目 README

pub package

Simple widgets to animate between number or string text. Useful for number increase/decrease animation, currency value animation or string content changing animation.

Features

  • Similar to a simple Text widget.
  • Animating between number (int or double) with AnimatedNumberText.
  • Animating between string, which will lerp each character respectively with AnimatedStringText.
  • TextStyle animation supported.
  • Think of Flutter's pre-built animated widget like AnimatedOpacity, AnimatedAlign, ..., but with text.

Getting started

  • First import it:
import 'package:animated_text_lerp/animated_text_lerp.dart';

Usage

AnimatedNumberText

https://github.com/SilentCatD/animated_text_lerp/blob/main/assets/animated_number_text.gif?raw=true

The widget support lerping between number values. Just setState with the current value and the widget will start animating to it.

AnimatedNumberText(
  value, // int or double
  curve: Curves.easeIn,
  duration: const Duration(seconds: 1),
  style: const TextStyle(fontSize: 30),
  formatter: (value) {
    final formatted =
    intl.NumberFormat.currency(locale: "en").format(value);
    return formatted;
  },
)

AnimatedStringText

https://github.com/SilentCatD/animated_text_lerp/blob/main/assets/animated_text.gif?raw=true

The widget support lerping between string values. Just setState with the current value and the widget will start animating to it. Each character will lerp to the new corresponding one respectively.

AnimatedStringText(
  value, // string
  curve: Curves.easeIn,
  duration: const Duration(seconds: 1),
  style: const TextStyle(fontSize: 30),
)