Untitled
unknown
plain_text
a year ago
7.4 kB
8
Indexable
Widget build(BuildContext context) { return WillPopScope( onWillPop: () async { backClick(); return false; }, child: Scaffold( resizeToAvoidBottomInset: false, body: SizedBox( height: double.infinity, width: double.infinity, child: PageView.builder( controller: _controller, onPageChanged: (value) { selectedPage.value = value; }, itemCount: DataFile.introList.length, itemBuilder: (context, index) { ModelIntro introModel = DataFile.introList[index]; BoxDecoration lightThemeDecoration = const BoxDecoration( color: AppColors.backgroundColorLight, borderRadius: BorderRadius.only( topLeft: Radius.circular(70.0), topRight: Radius.circular(70.0), ), ); BoxDecoration darkThemeDecoration = const BoxDecoration( color: AppColors.backgroundColorDark, borderRadius: BorderRadius.only( topLeft: Radius.circular(70.0), topRight: Radius.circular(70.0), ), ); return Stack( alignment: Alignment.bottomCenter, children: [ Column( children: [ Expanded( flex: 3, // Zwiększenie proporcji przestrzeni dla obrazu child: Container( alignment: Alignment.center, color: introModel.color, child: AspectRatio( aspectRatio: 1, // Utrzymuje proporcje obrazu child: getAssetImage( introModel.image ?? "", FetchPixels.getPixelWidth(700), FetchPixels.getPixelHeight(500), ), ), ), ), Expanded( flex: 2, // Zmniejszenie proporcji przestrzeni dla dolnych elementów child: Container( decoration: Theme.of(context).brightness == Brightness.light ? lightThemeDecoration : darkThemeDecoration, width: FetchPixels.getPixelWidth(double.infinity), height: FetchPixels.getPixelHeight(400), child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( width: FetchPixels.getPixelHeight(400), child: Text( introModel.title ?? "", textAlign: TextAlign.center, style: Theme.of(context).brightness == Brightness.light ? AppTextStyles.extraLargeTextLight : AppTextStyles.extraLargeTextDark, ), ), getVerSpace(FetchPixels.getPixelHeight(15)), getPaddingWidget( EdgeInsets.symmetric( horizontal: FetchPixels.getPixelWidth(20)), SizedBox( width: FetchPixels.getPixelHeight(400), child: Text( introModel.description ?? "", textAlign: TextAlign.center, style: Theme.of(context).brightness == Brightness.light ? AppTextStyles.mediumTextLight : AppTextStyles.mediumTextDark, ), ), ), getVerSpace(FetchPixels.getPixelHeight(25)), DotsIndicator( dotsCount: DataFile.introList.length, position: index.toDouble().round(), decorator: DotsDecorator( activeColor: Theme.of(context).brightness == Brightness.light ? AppColors.primaryColor : AppColors.secondaryColorDark, color: Theme.of(context).brightness == Brightness.light ? AppColors.secondaryColor : AppColors.tertiaryColorDark, size: Size.square( FetchPixels.getPixelHeight(10)), activeSize: Size.square( FetchPixels.getPixelHeight(15)), spacing: EdgeInsets.symmetric( horizontal: FetchPixels.getPixelWidth(7)), ), ), getVerSpace(FetchPixels.getPixelHeight(25)), ElevatedButton( onPressed: () { if (index == DataFile.introList.length - 1) { Helper.sendToNext( context, const LoginScreen()); } else { _controller.animateToPage( index + 1, duration: const Duration(milliseconds: 250), curve: Curves.easeInSine, ); } }, child: Text( AppLocalizations.of(context)!.next, ), ), getVerSpace(FetchPixels.getPixelHeight(10)), TextButton( onPressed: () { if (index != 2) { Helper.sendToNext( context, const LoginScreen()); } }, child: index == 2 ? Container() : Text( AppLocalizations.of(context)!.skip, ), ), ], ), ), ], ), ), ], ); }, ), ), ), ); } }
Editor is loading...
Leave a Comment