BusinessAppFlutter/openclosenew/lib/18-AddProductFrom.dart

374 lines
13 KiB
Dart

import 'package:dotted_border/dotted_border.dart';
import 'package:flutter/material.dart';
import 'package:openclosenew/20-ProductListing.dart';
import 'package:openclosenew/colors.dart';
import 'FontFamily.dart';
import 'fontsize.dart';
class addproductfrom extends StatefulWidget {
const addproductfrom({Key? key}) : super(key: key);
@override
State<addproductfrom> createState() => _addproductfromState();
}
class _addproductfromState extends State<addproductfrom> {
List<DropdownMenuItem<String>> listDrop = [];
String? selected = null;
void loadData() {
listDrop = [];
listDrop.add(new DropdownMenuItem(
child: new Text('Rice'),
value: 'val-1',
));
listDrop.add(new DropdownMenuItem(
child: new Text('Others'),
value: 'val-2',
));
}
bool status = false;
@override
Widget build(BuildContext context) {
loadData();
return Scaffold(
resizeToAvoidBottomInset: false,
backgroundColor: White,
body: SafeArea(
child: Padding(
padding: const EdgeInsets.only(top: 10, left: 20, right: 20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
InkWell(
child: Icon(Icons.arrow_back, size: 24),
onTap: () {
Navigator.pop(context);
},
),
SizedBox(
width: 20,
),
Text(
'Add Food Item',
style: TextStyle(
fontSize: HeadText,
color: DarkGray,
fontFamily: Font,
),
),
],
),
Spacer(),
Row(
children: [
Expanded(
child: MaterialButton(
color: (status == true) ? White : primaryColor,
height: 50,
minWidth: double.infinity,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(4),
bottomLeft: Radius.circular(4),
),
),
onPressed: () {
setState(() {
status = !status;
});
},
child: Text(
"Veg",
style: TextStyle(
color: (status == true) ? Gray : White,
fontSize: HeadText,
fontFamily: Font,
),
),
),
),
Expanded(
child: MaterialButton(
color: (status == true) ? primaryColor : White,
height: 50,
minWidth: double.infinity,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topRight: Radius.circular(4),
bottomRight: Radius.circular(4),
),
),
onPressed: () {
setState(() {
status = !status;
});
},
child: Text(
"Non Veg",
style: TextStyle(
color: (status == true) ? White : Gray,
fontSize: HeadText,
fontFamily: Font,
),
),
),
),
],
),
Spacer(),
Text(
'Item Name',
style: TextStyle(
fontFamily: Font,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w300,
fontSize: HeadText,
color: DarkGray,
),
),
Spacer(),
TextField(
decoration: InputDecoration(
contentPadding: EdgeInsets.only(left: 10, right: 10),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5)),
hintText: 'Type here...',
),
),
Spacer(),
Text(
'Category',
style: TextStyle(
fontFamily: Font,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w300,
fontSize: HeadText,
color: DarkGray,
),
),
Spacer(),
InputDecorator(
decoration: InputDecoration(
contentPadding:
EdgeInsets.only(left: 10, top: 1, bottom: 1, right: 5),
border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(5)),
),
),
child: DropdownButtonHideUnderline(
child: new DropdownButton(
borderRadius: BorderRadius.circular(5),
value: selected,
items: listDrop,
icon: Icon(Icons.keyboard_arrow_down, size: 24),
hint: new Text('Choose...'),
onChanged: (value) {
selected = value as String?;
setState(() {});
},
),
),
),
Spacer(),
Text(
'Price',
style: TextStyle(
fontFamily: Font,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w300,
fontSize: HeadText,
color: DarkGray,
),
),
Spacer(),
TextField(
keyboardType: TextInputType.number,
decoration: InputDecoration(
prefixIcon: Image.asset(
'assets/images/dollor.png',
width: 10,
height: 10,
),
contentPadding:
EdgeInsets.only(left: 10, top: 10, bottom: 10),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5),
),
hintText: '00.00',
),
),
Spacer(),
Text(
'Description',
style: TextStyle(
fontFamily: Font,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w300,
fontSize: HeadText,
color: DarkGray,
),
),
Spacer(),
TextField(
maxLines: 3,
decoration: InputDecoration(
contentPadding:
EdgeInsets.only(top: 10, left: 10, right: 10, bottom: 10),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5),
),
hintText: 'Type here...',
),
),
Spacer(),
Text(
'Upload photo',
style: TextStyle(
fontFamily: Font,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w300,
fontSize: HeadText,
color: DarkGray,
),
),
InkWell(
onTap: () {
showModalBottomSheet<void>(
context: context,
builder: (BuildContext context) {
return Container(
height: 200,
color: Colors.white,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
SizedBox(
height: 20,
),
Text(
"Choose You Image",
style: TextStyle(
fontSize: 20,
fontFamily: Font,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.bold),
),
SizedBox(height: 30),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
IconButton(
onPressed: () {},
icon: Icon(Icons.camera),
iconSize: 30,
),
Text(
'Camera',
style: TextStyle(
fontSize: 15,
fontFamily: Font,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w300,
color: DarkGray,
),
),
SizedBox(
width: 50,
),
IconButton(
onPressed: () {},
icon: Icon(Icons.image_rounded),
iconSize: 30,
),
Text(
'Gallery',
style: TextStyle(
fontSize: 15,
fontFamily: Font,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w300,
color: DarkGray,
),
),
],
)
],
),
),
);
},
);
},
child: DottedBorder(
padding: EdgeInsets.all(45),
dashPattern: [4, 4, 4, 4],
radius: Radius.circular(10),
color: primaryColor,
child: Image.asset(
'assets/images/insert_logo.png',
width: 30,
height: 30,
color: primaryColor,
),
),
),
Spacer(),
Padding(
padding: const EdgeInsets.only(bottom: 24),
child: Row(
children: [
Expanded(
child: MaterialButton(
height: 50,
minWidth: double.infinity,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4)),
onPressed: () {
Navigator.pop(context);
},
child: Text(
"Cancel",
style: TextStyle(
color: Gray,
fontFamily: Font,
),
),
),
),
Expanded(
child: MaterialButton(
height: 50,
minWidth: double.infinity,
color: primaryColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4)),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => ProductListing()));
},
child: Text(
'Save',
style: TextStyle(
color: White,
fontSize: HeadText,
fontFamily: Font,
),
),
),
),
],
),
),
],
),
),
),
);
}
}