Untitled
unknown
plain_text
2 years ago
7.7 kB
7
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