Commit c5766bdc authored by Dio Maulana's avatar Dio Maulana

resposive profile page

parent a947689d
// ignore_for_file: avoid_unnecessary_containers, sized_box_for_whitespace // ignore_for_file: avoid_unnecessary_containers, sized_box_for_whitespace
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:tour_travel_agr/helper/widget_responsive.dart';
import 'package:tour_travel_agr/resource/assets.dart'; import 'package:tour_travel_agr/resource/assets.dart';
import 'package:tour_travel_agr/resource/colors.dart'; import 'package:tour_travel_agr/resource/colors.dart';
import 'package:tour_travel_agr/resource/routes.dart';
import 'package:tour_travel_agr/resource/size.dart'; import 'package:tour_travel_agr/resource/size.dart';
import 'package:tour_travel_agr/resource/style.dart'; import 'package:tour_travel_agr/resource/style.dart';
...@@ -13,120 +15,227 @@ class ProfileView extends StatelessWidget { ...@@ -13,120 +15,227 @@ class ProfileView extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: ColorManager.backgroundColor, backgroundColor: ColorManager.backgroundColor,
body: Stack( body: ScreenResponsive(
children: [ widget: const BodyWidget(),
Column( widthScreen: MediaQuery.of(context).size.width,
children: [ ),
Container( );
width: double.infinity, }
height: 318 + AppPadding.safeAreaTop(context), }
margin: EdgeInsets.all(
AppPadding.p8, class BodyWidget extends StatelessWidget {
), const BodyWidget({
decoration: BoxDecoration( Key? key,
color: ColorManager.primary, }) : super(key: key);
borderRadius: BorderRadius.circular(
20, @override
), Widget build(BuildContext context) {
return Stack(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: double.infinity,
height: 318 + AppPadding.safeAreaTop(context),
margin: EdgeInsets.all(
AppPadding.p8,
),
decoration: BoxDecoration(
color: ColorManager.primary,
borderRadius: BorderRadius.circular(
20,
), ),
child: Column( ),
crossAxisAlignment: CrossAxisAlignment.center, child: Column(
children: [ crossAxisAlignment: CrossAxisAlignment.center,
Container( children: [
margin: EdgeInsets.only( Container(
top: AppMargin.m25, margin: EdgeInsets.only(
), top: AppMargin.m25,
child: Row( ),
children: [ child: Row(
const Spacer(), children: [
Container( const Spacer(),
width: 24, Container(
height: 24, width: 24,
child: Image( height: 24,
fit: BoxFit.fill, child: Image(
image: AssetImage( fit: BoxFit.fill,
Assets.editIcon, image: AssetImage(
), Assets.editIcon,
), ),
), ),
const SizedBox(
width: 12,
)
],
),
),
Container(
width: 120,
height: 120,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
100,
), ),
image: DecorationImage( const SizedBox(
fit: BoxFit.fill, width: 12,
image: AssetImage( )
Assets.profileSample, ],
), ),
),
Container(
width: 120,
height: 120,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
100,
),
image: DecorationImage(
fit: BoxFit.fill,
image: AssetImage(
Assets.profileSample,
), ),
), ),
), ),
SizedBox( ),
height: AppMargin.m16, SizedBox(
), height: AppMargin.m16,
Text( ),
"Dio Maulana", Text(
style: getSemiBoldStyle( "Dio Maulana",
color: Colors.white, style: getSemiBoldStyle(
fontSize: 20, color: Colors.white,
), fontSize: 20,
), ),
SizedBox( ),
height: AppMargin.m8, SizedBox(
height: AppMargin.m8,
),
Text(
"ID 33040000000000000083",
style: getRegularStyle(
color: Colors.white,
fontSize: 12,
), ),
Text( ),
"ID 33040000000000000083", const SizedBox(
style: getRegularStyle( height: 40,
color: Colors.white, ),
fontSize: 12, Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image(
width: 20,
height: 20,
image: AssetImage(
Assets.phoneIcon,
),
), ),
), Text(
const SizedBox( "+62-8127-535-1256",
height: 40, style: getRegularStyle(
), color: Colors.white,
Row(
children: [
Image(
width: 20,
height: 20,
image: AssetImage(
Assets.phoneIcon,
),
), ),
Text( )
"+62-8127-535-1256", ],
style: getRegularStyle( )
color: Colors.white, ],
), ),
) ),
], GestureDetector(
) onTap: () {
], Navigator.pop(context);
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: AppPadding.p20,
),
margin: EdgeInsets.only(
top: AppMargin.m6,
), ),
child: const Icon(Icons.arrow_back),
), ),
], ),
GestureDetector(
onTap: () {
Navigator.pushNamed(
context,
Routes.changePasswordRoute,
);
},
child: PorfileButton(
marginTop: 10,
icon: Assets.passwordIcon,
text: "Ganti Password",
),
),
PorfileButton(
marginTop: 16,
icon: Assets.logoutGreyIcon,
text: "Log Out",
),
],
),
Positioned(
left: 0,
top: 0,
child: Container(
child: Image(
image: AssetImage(
Assets.elipse,
),
),
), ),
Positioned( )
left: 0, ],
top: 0, );
child: Container( }
}
class PorfileButton extends StatelessWidget {
const PorfileButton({
Key? key,
required this.marginTop,
required this.text,
required this.icon,
}) : super(key: key);
final double marginTop;
final String text;
final String icon;
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(
horizontal: AppPadding.p20,
),
margin: EdgeInsets.only(
top: marginTop,
),
child: Container(
width: double.infinity,
height: 50,
padding: EdgeInsets.symmetric(
horizontal: AppPadding.p20,
vertical: AppPadding.p15,
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: const Color.fromARGB(255, 228, 225, 225),
),
child: Row(
children: [
Container(
width: 16,
height: 20,
child: Image( child: Image(
fit: BoxFit.fill,
image: AssetImage( image: AssetImage(
Assets.elipse, icon,
), ),
), ),
), ),
) SizedBox(
], width: AppMargin.m18,
),
Text(
text,
style: getRegularStyle(
color: Colors.black,
),
)
],
),
), ),
); );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment