typing static method
This function is used to create a typing animation for text widgets in the WxAnimatedText class. It simulates the effect of text being typed on screen one character at a time.
Implementation
static WxAnimatedTextBuilder typing({
String? trails,
Duration trailsBlinking = const Duration(milliseconds: 500),
}) {
return (child, final state) {
final config = child as WxText;
final value = state.animation.value.clamp(0, 1);
final chars = config.text.characters;
final count = (value * chars.length).round();
final text = chars.take(count).toString();
final trailing = (trails ?? '').trim();
if (trailing.isNotEmpty) {
if (state.isCompleted) {
return AnimatedRepeatable(
duration: trailsBlinking,
transition: (widget, state) {
final blinking = state.animation.value > .5 ? trailing : '';
return WxText.from(config, text: text + blinking);
},
child: const SizedBox(),
);
}
}
return WxText.from(config, text: text + trailing);
};
}