fix profile
parent
b281efe14c
commit
393e28b32c
@ -0,0 +1,73 @@
|
|||||||
|
|
||||||
|
|
||||||
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:mohem_flutter_app/app_state/app_state.dart';
|
||||||
|
import 'package:mohem_flutter_app/classes/consts.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/generic_response_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_phones_model.dart';
|
||||||
|
import 'api_client.dart';
|
||||||
|
|
||||||
|
class ProfileApiClient {
|
||||||
|
static final ProfileApiClient _instance = ProfileApiClient._internal();
|
||||||
|
|
||||||
|
ProfileApiClient._internal();
|
||||||
|
|
||||||
|
factory ProfileApiClient() => _instance;
|
||||||
|
|
||||||
|
|
||||||
|
Future<GetEmployeeContactsList?> getEmployeeContacts() async {
|
||||||
|
String url = "${ApiConsts.erpRest}GET_EMPLOYEE_CONTACTS";
|
||||||
|
Map<String, dynamic> postParams = {
|
||||||
|
"P_MENU_TYPE": "E",
|
||||||
|
"P_SELECTED_RESP_ID": -999,
|
||||||
|
};
|
||||||
|
postParams.addAll(AppState().postParamsJson);
|
||||||
|
return await ApiClient().postJsonForObject((json) {
|
||||||
|
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||||
|
return (responseData.getEmployeeContactsList?.length ?? 0) > 0 ? responseData.getEmployeeContactsList!.first : null;
|
||||||
|
}, url, postParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<List<GetEmployeeBasicDetailsList>> getEmployeeBasicDetails() async {
|
||||||
|
String url = "${ApiConsts.erpRest}GET_EMPLOYEE_BASIC_DETAILS";
|
||||||
|
Map<String, dynamic> postParams = {
|
||||||
|
"P_MENU_TYPE": "E",
|
||||||
|
"P_SELECTED_RESP_ID": -999,
|
||||||
|
};
|
||||||
|
postParams.addAll(AppState().postParamsJson);
|
||||||
|
return await ApiClient().postJsonForObject((json) {
|
||||||
|
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||||
|
return responseData.getEmployeeBasicDetailsList ?? [];
|
||||||
|
}, url, postParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<GetEmployeePhonesList?> getEmployeePhones() async {
|
||||||
|
String url = "${ApiConsts.erpRest}GET_EMPLOYEE_PHONES";
|
||||||
|
Map<String, dynamic> postParams = {
|
||||||
|
"P_MENU_TYPE": "E",
|
||||||
|
"P_SELECTED_RESP_ID": -999,
|
||||||
|
};
|
||||||
|
postParams.addAll(AppState().postParamsJson);
|
||||||
|
return await ApiClient().postJsonForObject((json) {
|
||||||
|
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||||
|
return (responseData.getEmployeePhonesList?.length ?? 0) > 0 ? responseData.getEmployeePhonesList!.first : null;
|
||||||
|
}, url, postParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<GetEmployeeAddressList?> getEmployeeAddress() async {
|
||||||
|
String url = "${ApiConsts.erpRest}GET_EMPLOYEE_ADDRESS";
|
||||||
|
Map<String, dynamic> postParams = {
|
||||||
|
"P_MENU_TYPE": "E",
|
||||||
|
"P_SELECTED_RESP_ID": -999,
|
||||||
|
};
|
||||||
|
postParams.addAll(AppState().postParamsJson);
|
||||||
|
return await ApiClient().postJsonForObject((json) {
|
||||||
|
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||||
|
return (responseData.getEmployeeAddressList?.length ?? 0) > 0 ? responseData.getEmployeeAddressList!.first : null;
|
||||||
|
}, url, postParams);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
class GetEmployeeAddressList {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
class GetEmployeeBasicDetailsList {
|
||||||
|
String? aPPLICATIONCOLUMNNAME;
|
||||||
|
String? dATATYPE;
|
||||||
|
String? dATEVALUE;
|
||||||
|
String? dISPLAYFLAG;
|
||||||
|
int? gROUPNUM;
|
||||||
|
int? nUMBERVALUE;
|
||||||
|
String? sEGMENTPROMPT;
|
||||||
|
int? sEGMENTSEQNUM;
|
||||||
|
String? sEGMENTVALUEDSP;
|
||||||
|
String? vARCHAR2VALUE;
|
||||||
|
|
||||||
|
GetEmployeeBasicDetailsList(
|
||||||
|
{this.aPPLICATIONCOLUMNNAME,
|
||||||
|
this.dATATYPE,
|
||||||
|
this.dATEVALUE,
|
||||||
|
this.dISPLAYFLAG,
|
||||||
|
this.gROUPNUM,
|
||||||
|
this.nUMBERVALUE,
|
||||||
|
this.sEGMENTPROMPT,
|
||||||
|
this.sEGMENTSEQNUM,
|
||||||
|
this.sEGMENTVALUEDSP,
|
||||||
|
this.vARCHAR2VALUE});
|
||||||
|
|
||||||
|
GetEmployeeBasicDetailsList.fromJson(Map<String, dynamic> json) {
|
||||||
|
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
|
||||||
|
dATATYPE = json['DATATYPE'];
|
||||||
|
dATEVALUE = json['DATE_VALUE'];
|
||||||
|
dISPLAYFLAG = json['DISPLAY_FLAG'];
|
||||||
|
gROUPNUM = json['GROUP_NUM'];
|
||||||
|
nUMBERVALUE = json['NUMBER_VALUE'];
|
||||||
|
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
|
||||||
|
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
|
||||||
|
sEGMENTVALUEDSP = json['SEGMENT_VALUE_DSP'];
|
||||||
|
vARCHAR2VALUE = json['VARCHAR2_VALUE'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
|
||||||
|
data['DATATYPE'] = this.dATATYPE;
|
||||||
|
data['DATE_VALUE'] = this.dATEVALUE;
|
||||||
|
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
|
||||||
|
data['GROUP_NUM'] = this.gROUPNUM;
|
||||||
|
data['NUMBER_VALUE'] = this.nUMBERVALUE;
|
||||||
|
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
|
||||||
|
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
|
||||||
|
data['SEGMENT_VALUE_DSP'] = this.sEGMENTVALUEDSP;
|
||||||
|
data['VARCHAR2_VALUE'] = this.vARCHAR2VALUE;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
|
||||||
|
class GetEmployeeContactsList {
|
||||||
|
String? cONTACTNAME;
|
||||||
|
int? cONTACTPERSONID;
|
||||||
|
int? cONTACTRELATIONSHIPID;
|
||||||
|
String? cONTACTTYPE;
|
||||||
|
String? dATEOFBIRTH;
|
||||||
|
int? pERSONID;
|
||||||
|
String? pRIMARYCONTACTFLAG;
|
||||||
|
String? rELATIONSHIP;
|
||||||
|
|
||||||
|
GetEmployeeContactsList(
|
||||||
|
{this.cONTACTNAME,
|
||||||
|
this.cONTACTPERSONID,
|
||||||
|
this.cONTACTRELATIONSHIPID,
|
||||||
|
this.cONTACTTYPE,
|
||||||
|
this.dATEOFBIRTH,
|
||||||
|
this.pERSONID,
|
||||||
|
this.pRIMARYCONTACTFLAG,
|
||||||
|
this.rELATIONSHIP});
|
||||||
|
|
||||||
|
GetEmployeeContactsList.fromJson(Map<String, dynamic> json) {
|
||||||
|
cONTACTNAME = json['CONTACT_NAME'];
|
||||||
|
cONTACTPERSONID = json['CONTACT_PERSON_ID'];
|
||||||
|
cONTACTRELATIONSHIPID = json['CONTACT_RELATIONSHIP_ID'];
|
||||||
|
cONTACTTYPE = json['CONTACT_TYPE'];
|
||||||
|
dATEOFBIRTH = json['DATE_OF_BIRTH'];
|
||||||
|
pERSONID = json['PERSON_ID'];
|
||||||
|
pRIMARYCONTACTFLAG = json['PRIMARY_CONTACT_FLAG'];
|
||||||
|
rELATIONSHIP = json['RELATIONSHIP'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['CONTACT_NAME'] = this.cONTACTNAME;
|
||||||
|
data['CONTACT_PERSON_ID'] = this.cONTACTPERSONID;
|
||||||
|
data['CONTACT_RELATIONSHIP_ID'] = this.cONTACTRELATIONSHIPID;
|
||||||
|
data['CONTACT_TYPE'] = this.cONTACTTYPE;
|
||||||
|
data['DATE_OF_BIRTH'] = this.dATEOFBIRTH;
|
||||||
|
data['PERSON_ID'] = this.pERSONID;
|
||||||
|
data['PRIMARY_CONTACT_FLAG'] = this.pRIMARYCONTACTFLAG;
|
||||||
|
data['RELATIONSHIP'] = this.rELATIONSHIP;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
class GetEmployeePhonesList {
|
||||||
|
String? dATEFROM;
|
||||||
|
String? dATETO;
|
||||||
|
int? oBJECTVERSIONNUMBER;
|
||||||
|
int? pARENTID;
|
||||||
|
String? pARENTTABLE;
|
||||||
|
int? pHONEID;
|
||||||
|
String? pHONENUMBER;
|
||||||
|
String? pHONETYPE;
|
||||||
|
String? pHONETYPEMEANING;
|
||||||
|
int? rOWINDEX;
|
||||||
|
|
||||||
|
GetEmployeePhonesList(
|
||||||
|
{this.dATEFROM,
|
||||||
|
this.dATETO,
|
||||||
|
this.oBJECTVERSIONNUMBER,
|
||||||
|
this.pARENTID,
|
||||||
|
this.pARENTTABLE,
|
||||||
|
this.pHONEID,
|
||||||
|
this.pHONENUMBER,
|
||||||
|
this.pHONETYPE,
|
||||||
|
this.pHONETYPEMEANING,
|
||||||
|
this.rOWINDEX});
|
||||||
|
|
||||||
|
GetEmployeePhonesList.fromJson(Map<String, dynamic> json) {
|
||||||
|
dATEFROM = json['DATE_FROM'];
|
||||||
|
dATETO = json['DATE_TO'];
|
||||||
|
oBJECTVERSIONNUMBER = json['OBJECT_VERSION_NUMBER'];
|
||||||
|
pARENTID = json['PARENT_ID'];
|
||||||
|
pARENTTABLE = json['PARENT_TABLE'];
|
||||||
|
pHONEID = json['PHONE_ID'];
|
||||||
|
pHONENUMBER = json['PHONE_NUMBER'];
|
||||||
|
pHONETYPE = json['PHONE_TYPE'];
|
||||||
|
pHONETYPEMEANING = json['PHONE_TYPE_MEANING'];
|
||||||
|
rOWINDEX = json['ROW_INDEX'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['DATE_FROM'] = this.dATEFROM;
|
||||||
|
data['DATE_TO'] = this.dATETO;
|
||||||
|
data['OBJECT_VERSION_NUMBER'] = this.oBJECTVERSIONNUMBER;
|
||||||
|
data['PARENT_ID'] = this.pARENTID;
|
||||||
|
data['PARENT_TABLE'] = this.pARENTTABLE;
|
||||||
|
data['PHONE_ID'] = this.pHONEID;
|
||||||
|
data['PHONE_NUMBER'] = this.pHONENUMBER;
|
||||||
|
data['PHONE_TYPE'] = this.pHONETYPE;
|
||||||
|
data['PHONE_TYPE_MEANING'] = this.pHONETYPEMEANING;
|
||||||
|
data['ROW_INDEX'] = this.rOWINDEX;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,288 @@
|
|||||||
|
import 'package:easy_localization/src/public_ext.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mohem_flutter_app/api/profile_api_client.dart';
|
||||||
|
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||||
|
import 'package:mohem_flutter_app/classes/utils.dart';
|
||||||
|
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||||
|
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||||
|
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
|
||||||
|
|
||||||
|
class Profile extends StatefulWidget {
|
||||||
|
const Profile({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_ProfileState createState() => _ProfileState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ProfileState extends State<Profile> {
|
||||||
|
String? fullName = "";
|
||||||
|
String? maritalStatus = "";
|
||||||
|
String? birthDate = "";
|
||||||
|
String? civilIdentityNumber = "";
|
||||||
|
String? emailAddress = "";
|
||||||
|
String? employeeNo = "";
|
||||||
|
|
||||||
|
List<GetEmployeeBasicDetailsList> getEmployeeBasicDetailsList = [];
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
getEmployeeBasicDetails();
|
||||||
|
basicDetails();
|
||||||
|
}
|
||||||
|
|
||||||
|
void getEmployeeBasicDetails() async {
|
||||||
|
try {
|
||||||
|
Utils.showLoading(context);
|
||||||
|
getEmployeeBasicDetailsList = await ProfileApiClient().getEmployeeBasicDetails();
|
||||||
|
Utils.hideLoading(context);
|
||||||
|
basicDetails();
|
||||||
|
print("getEmployeeBasicDetailsList.length");
|
||||||
|
print(getEmployeeBasicDetailsList.length);
|
||||||
|
setState(() {});
|
||||||
|
} catch (ex) {
|
||||||
|
Utils.hideLoading(context);
|
||||||
|
Utils.handleException(ex, context, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
basicDetails() {
|
||||||
|
for (int i = 0; i < getEmployeeBasicDetailsList.length; i++) {
|
||||||
|
if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'FULL_NAME') {
|
||||||
|
fullName = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||||
|
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'MARITAL_STATUS') {
|
||||||
|
maritalStatus = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||||
|
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'DATE_OF_BIRTH') {
|
||||||
|
birthDate = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||||
|
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'NATIONAL_IDENTIFIER') {
|
||||||
|
civilIdentityNumber = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||||
|
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMAIL_ADDRESS') {
|
||||||
|
emailAddress = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||||
|
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMPLOYEE_NUMBER') {
|
||||||
|
employeeNo = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
backgroundColor: MyColors.lightGreenColor,
|
||||||
|
leading: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||||
|
children: [
|
||||||
|
IconButton(
|
||||||
|
icon: const Icon(
|
||||||
|
Icons.arrow_back_ios,
|
||||||
|
color: MyColors.backgroundBlackColor,
|
||||||
|
),
|
||||||
|
onPressed: () => Navigator.pop(context),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
backgroundColor: MyColors.lightGreenColor,
|
||||||
|
body: Stack(children: [
|
||||||
|
Align(
|
||||||
|
alignment: Alignment.topRight,
|
||||||
|
child: Container(
|
||||||
|
height: 30,
|
||||||
|
width: 80,
|
||||||
|
padding: EdgeInsets.only(left: 10.0, right: 10.0, top: 5, bottom: 5),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(
|
||||||
|
color: MyColors.gradiantEndColor,
|
||||||
|
style: BorderStyle.solid,
|
||||||
|
),
|
||||||
|
color: MyColors.gradiantEndColor,
|
||||||
|
borderRadius: BorderRadius.circular(100.0)),
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () {},
|
||||||
|
child: RichText(
|
||||||
|
text: TextSpan(
|
||||||
|
children: [
|
||||||
|
WidgetSpan(
|
||||||
|
child: Icon(
|
||||||
|
Icons.image,
|
||||||
|
size: 20,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
TextSpan(
|
||||||
|
text: " Edit",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
margin: EdgeInsets.only(top: 48),
|
||||||
|
height: double.infinity,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.only(topLeft: Radius.circular(30.0), topRight: Radius.circular(30.0)),
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
"${fullName}".toText20(isBold: true, color: MyColors.blackColor),
|
||||||
|
"${employeeNo}".toText12(isBold: false, color: MyColors.lightGrayColor),
|
||||||
|
"${emailAddress}".toText12(isBold: false, color: MyColors.black),
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
Divider(
|
||||||
|
color: MyColors.lightGreyE6Color,
|
||||||
|
height: 20,
|
||||||
|
thickness: 8,
|
||||||
|
indent: 0,
|
||||||
|
endIndent: 0,
|
||||||
|
),
|
||||||
|
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.only(left: 10.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
|
||||||
|
},
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
|
||||||
|
SizedBox(
|
||||||
|
width: 15,
|
||||||
|
),
|
||||||
|
"Personal Information".toText16(isBold: true, color: MyColors.grey3AColor),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
|
||||||
|
},
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
|
||||||
|
SizedBox(
|
||||||
|
width: 15,
|
||||||
|
),
|
||||||
|
"Basic Details".toText16(isBold: true, color: MyColors.grey3AColor),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
|
||||||
|
},
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
|
||||||
|
SizedBox(
|
||||||
|
width: 20,
|
||||||
|
),
|
||||||
|
"Contact Details".toText16(isBold: true, color: MyColors.grey3AColor),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
|
||||||
|
},
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
|
||||||
|
SizedBox(
|
||||||
|
width: 20,
|
||||||
|
),
|
||||||
|
"Family Members".toText16(isBold: true, color: MyColors.grey3AColor),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
).paddingOnly( top: 35, bottom: 36),
|
||||||
|
),
|
||||||
|
Align(
|
||||||
|
alignment: Alignment.topCenter,
|
||||||
|
child: SizedBox(
|
||||||
|
child: CircleAvatar(
|
||||||
|
radius: 40.0,
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
child: CircleAvatar(
|
||||||
|
child: Align(
|
||||||
|
alignment: Alignment.bottomRight,
|
||||||
|
// child: CircleAvatar(
|
||||||
|
// backgroundColor: Colors.white,
|
||||||
|
// radius: 12.0,
|
||||||
|
// child: Icon(
|
||||||
|
// Icons.camera_alt,
|
||||||
|
// size: 15.0,
|
||||||
|
// color: Color(0xFF404040),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
),
|
||||||
|
radius: 38.0,
|
||||||
|
// url:"",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
])
|
||||||
|
// Container(
|
||||||
|
// margin: const EdgeInsets.only(top:50),
|
||||||
|
// decoration: const BoxDecoration(
|
||||||
|
// color: Colors.white,
|
||||||
|
// borderRadius: BorderRadius.only(
|
||||||
|
// topLeft: Radius.circular(30.0),
|
||||||
|
// topRight: Radius.circular(30.0))
|
||||||
|
// ),
|
||||||
|
// // color: MyColors.white,
|
||||||
|
// child: Stack(
|
||||||
|
// children: [
|
||||||
|
// Container(
|
||||||
|
// height: 30,
|
||||||
|
// color: MyColors.lightGreenColor,
|
||||||
|
// margin: const EdgeInsets.only(bottom: 20,),
|
||||||
|
// child: Row(
|
||||||
|
// mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
// children: [
|
||||||
|
// CircleAvatar(
|
||||||
|
// backgroundColor: Colors.grey.shade800,
|
||||||
|
// ),
|
||||||
|
// ],
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ListView(
|
||||||
|
// scrollDirection: Axis.vertical,
|
||||||
|
// children: [
|
||||||
|
// Column(
|
||||||
|
// children: [
|
||||||
|
// // 20.height,
|
||||||
|
// ],
|
||||||
|
// )
|
||||||
|
// ],
|
||||||
|
// ),
|
||||||
|
// ]
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue