From 6f6df3076788bc4403d3b077f41f2e280c9d54d1 Mon Sep 17 00:00:00 2001 From: Inex Code Date: Fri, 16 Sep 2022 15:00:15 +0300 Subject: [PATCH] Animate BrandLinearIndicator --- .../brand_linear_indicator.dart | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/lib/ui/components/brand_linear_indicator/brand_linear_indicator.dart b/lib/ui/components/brand_linear_indicator/brand_linear_indicator.dart index 807d3224..16ffb40a 100644 --- a/lib/ui/components/brand_linear_indicator/brand_linear_indicator.dart +++ b/lib/ui/components/brand_linear_indicator/brand_linear_indicator.dart @@ -15,21 +15,29 @@ class BrandLinearIndicator extends StatelessWidget { final double height; @override - Widget build(final BuildContext context) => Container( - height: height, - width: double.infinity, - clipBehavior: Clip.antiAlias, - decoration: BoxDecoration( - color: backgroundColor, - borderRadius: BorderRadius.circular(height), - ), - alignment: Alignment.centerLeft, - child: FractionallySizedBox( - widthFactor: value, - child: Container( - decoration: BoxDecoration( - color: color, - borderRadius: BorderRadius.circular(height), + Widget build(final BuildContext context) => LayoutBuilder( + builder: (final context, final constraints) => Container( + height: height, + width: constraints.maxWidth, + clipBehavior: Clip.antiAlias, + decoration: BoxDecoration( + color: backgroundColor, + borderRadius: BorderRadius.circular(height), + ), + alignment: Alignment.centerLeft, + child: AnimatedSlide( + duration: const Duration(milliseconds: 400), + curve: Curves.easeInOut, + offset: Offset( + -(1 - value), + 0, + ), + child: Container( + width: constraints.maxWidth, + decoration: BoxDecoration( + color: color, + borderRadius: BorderRadius.circular(height), + ), ), ), ),