153 lines
5.4 KiB
Dart
153 lines
5.4 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:nearle/views/helpers/constants/Colorconstants.dart';
|
|
import 'package:nearle/views/helpers/constants/Font_constant.dart';
|
|
|
|
class Intro3 extends GetResponsiveView {
|
|
final VoidCallback onFinish;
|
|
|
|
Intro3({
|
|
super.key,
|
|
required this.onFinish,
|
|
required PageController controller,
|
|
});
|
|
|
|
@override
|
|
Widget builder() {
|
|
final height = screen.height;
|
|
final width = screen.width;
|
|
|
|
return AnnotatedRegion<SystemUiOverlayStyle>(
|
|
value: SystemUiOverlayStyle.light.copyWith(
|
|
// Keep status bar transparent over the purple gradient on this screen
|
|
statusBarColor: Colors.transparent,
|
|
statusBarIconBrightness: Brightness.light,
|
|
statusBarBrightness: Brightness.dark,
|
|
systemNavigationBarColor: Colors.white,
|
|
),
|
|
child: Scaffold(
|
|
backgroundColor: Colors.white,
|
|
appBar: PreferredSize(
|
|
preferredSize: Size.fromHeight(height * 0.35),
|
|
child: AppBar(
|
|
automaticallyImplyLeading: false,
|
|
elevation: 0,
|
|
backgroundColor: Colors.transparent,
|
|
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
|
|
statusBarColor: Colors.transparent,
|
|
statusBarIconBrightness: Brightness.light,
|
|
statusBarBrightness: Brightness.dark,
|
|
),
|
|
flexibleSpace: Container(
|
|
width: double.infinity,
|
|
height: height * 0.36,
|
|
decoration: BoxDecoration(
|
|
gradient: const LinearGradient(
|
|
begin: Alignment.topCenter,
|
|
end: Alignment.bottomCenter,
|
|
colors: [
|
|
ColorConstants.primaryColor,
|
|
ColorConstants.primaryColor,
|
|
],
|
|
),
|
|
borderRadius: BorderRadius.only(
|
|
bottomLeft: Radius.circular(width * 0.49),
|
|
bottomRight: Radius.circular(width * 0.49),
|
|
),
|
|
),
|
|
child: SafeArea(
|
|
child: Padding(
|
|
padding: EdgeInsets.symmetric(
|
|
horizontal: width * 0.06,
|
|
vertical: height * 0.02,
|
|
),
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
SizedBox(height: height * 0.06),
|
|
Text(
|
|
'Deliver. Earn.\nRepeat.',
|
|
textAlign: TextAlign.center,
|
|
style: TextStyle(
|
|
fontSize: height * 0.045,
|
|
fontWeight: FontWeight.bold,
|
|
color: Colors.white,
|
|
height: 1.2,
|
|
fontFamily: FontConstants.fontFamily,
|
|
),
|
|
),
|
|
SizedBox(height: height * 0.02),
|
|
Text(
|
|
'Track your trips, and enjoy \npayouts every week.',
|
|
textAlign: TextAlign.center,
|
|
style: TextStyle(
|
|
fontSize: height * 0.019,
|
|
color: Colors.white.withOpacity(0.9),
|
|
height: 1.4,
|
|
fontFamily: FontConstants.fontFamily,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
|
|
body: SafeArea(
|
|
child: Column(
|
|
children: [
|
|
Expanded(
|
|
child: Padding(
|
|
padding: EdgeInsets.symmetric(horizontal: width * 0.05),
|
|
child: Transform.translate(
|
|
offset: Offset(0, -height * 0.01),
|
|
child: Image.asset(
|
|
'assets/images/intro3.png',
|
|
height: height * 0.35,
|
|
width: width * 0.75,
|
|
fit: BoxFit.contain,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
|
|
SizedBox(height: height * 0.04),
|
|
|
|
// Button at bottom
|
|
Padding(
|
|
padding: EdgeInsets.symmetric(horizontal: width * 0.08),
|
|
child: SizedBox(
|
|
width: double.infinity,
|
|
height: 55,
|
|
child: ElevatedButton(
|
|
onPressed: onFinish,
|
|
style: ElevatedButton.styleFrom(
|
|
backgroundColor: ColorConstants.primaryColor,
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
),
|
|
),
|
|
child: Text(
|
|
"Start",
|
|
style: TextStyle(
|
|
fontSize: 21,
|
|
fontWeight: FontWeight.bold,
|
|
fontFamily: FontConstants.fontFamily,
|
|
color: Colors.white,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
SizedBox(height: height * 0.03),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|