Animate BrandLinearIndicator

pull/116/head
Inex Code 2022-09-16 15:00:15 +03:00
parent 641e329725
commit 6f6df30767
1 changed files with 23 additions and 15 deletions

View File

@ -15,23 +15,31 @@ class BrandLinearIndicator extends StatelessWidget {
final double height; final double height;
@override @override
Widget build(final BuildContext context) => Container( Widget build(final BuildContext context) => LayoutBuilder(
builder: (final context, final constraints) => Container(
height: height, height: height,
width: double.infinity, width: constraints.maxWidth,
clipBehavior: Clip.antiAlias, clipBehavior: Clip.antiAlias,
decoration: BoxDecoration( decoration: BoxDecoration(
color: backgroundColor, color: backgroundColor,
borderRadius: BorderRadius.circular(height), borderRadius: BorderRadius.circular(height),
), ),
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: FractionallySizedBox( child: AnimatedSlide(
widthFactor: value, duration: const Duration(milliseconds: 400),
curve: Curves.easeInOut,
offset: Offset(
-(1 - value),
0,
),
child: Container( child: Container(
width: constraints.maxWidth,
decoration: BoxDecoration( decoration: BoxDecoration(
color: color, color: color,
borderRadius: BorderRadius.circular(height), borderRadius: BorderRadius.circular(height),
), ),
), ),
), ),
),
); );
} }