import 'dart:math'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; class AnimatedBars extends StatefulWidget { final double size; final Color? color; const AnimatedBars({ super.key, this.size = 24.0, this.color, }); @override State createState() => _AnimatedBarsState(); } class _AnimatedBarsState extends State with TickerProviderStateMixin { late final _controller = AnimationController( vsync: this, duration: const Duration(milliseconds: 1000)) ..repeat(reverse: true); @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { final color = widget.color ?? Theme.of(context).colorScheme.onSurface; const count = 3; AnimatedIcons.search_ellipsis; return SizedBox.square( dimension: widget.size, child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: List.generate( count, (index) => SizedBox( width: widget.size / count, child: Align( alignment: Alignment.bottomCenter, child: Container(color: color), ), )), )); } }