Skip to content
Snippets Groups Projects
Commit 5aa51df9 authored by Kurbanov, Ruben's avatar Kurbanov, Ruben
Browse files

add main page & bottom nav bar & reg. page

parent fb0c3159
No related branches found
No related tags found
No related merge requests found
Showing
with 1070 additions and 16 deletions
<svg width="13" height="9" viewBox="0 0 13 9" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.182283 1.74073L1.32965 0.593364L6.50037 5.76408L11.6711 0.593364L12.8201 1.74241L6.50037 8.06218L0.182283 1.74073Z" fill="#333333"/>
</svg>
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 477.141 477.141"
xml:space="preserve">
<g>
<path d="M326.711,341.99h-64.628v-64.634c0-0.686-0.142-1.323-0.213-1.997c65.409-11.119,115.378-68.161,115.378-136.681
C377.249,62.208,315.044,0,238.571,0C162.103,0,99.892,62.208,99.892,138.678c0,68.521,49.973,125.562,115.375,136.681
c-0.059,0.674-0.204,1.312-0.204,1.997v64.634h-64.631c-12.983,0-23.501,10.527-23.501,23.502c0,12.98,10.518,23.507,23.501,23.507
h64.637v64.64c0,12.98,10.524,23.502,23.501,23.502c12.979,0,23.513-10.527,23.513-23.502v-64.64h64.628
c12.986,0,23.508-10.526,23.508-23.507C350.219,352.518,339.698,341.99,326.711,341.99z M146.904,138.678
c0-50.546,41.121-91.673,91.667-91.673c50.549,0,91.676,41.122,91.676,91.673s-41.127,91.667-91.676,91.667
C188.031,230.346,146.904,189.224,146.904,138.678z"/>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 393.739 393.739"
xml:space="preserve">
<g>
<path d="M370.907,0h-93.048c-9.091,0-16.455,7.365-16.455,16.45c0,9.085,7.364,16.453,16.455,16.453h43.19L217.25,136.704
c-21.049-12.879-45.768-20.318-72.194-20.318c-76.468,0-138.679,62.208-138.679,138.676c0,76.474,62.211,138.678,138.679,138.678
s138.678-62.204,138.678-138.678c0-33.07-11.655-63.455-31.037-87.314L354.462,65.985v49.231c0,9.085,7.365,16.452,16.444,16.452
c9.09,0,16.455-7.367,16.455-16.452V16.45C387.362,7.365,379.997,0,370.907,0z M145.056,346.737
c-50.546,0-91.673-41.127-91.673-91.676c0-50.543,41.121-91.667,91.673-91.667c50.546,0,91.664,41.124,91.664,91.667
C236.72,305.61,195.602,346.737,145.056,346.737z"/>
</g>
</svg>
\ No newline at end of file
......@@ -6,5 +6,26 @@
"forgot_password": "Forgot password",
"or":"or",
"dont_have_an_account": "Dont have an account",
"sign_in_with": "Sign in with"
"sign_in_with": "Sign in with",
"create_your_account": "Create your Account",
"name": "Name",
"surname":"Surname",
"phone_number":"Phone number",
"dob":"Day of birth",
"gender":"Gender",
"next_step":"Next step",
"code":"Code",
"email_varification":"Email varification",
"send_again":"Send again",
"finish":"Finish",
"success_email_ver": "The email has been successfully verified!",
"err_email_ver": "Invalid confirmation code or timed out!",
"akce":"Akce",
"questions" : "Questions",
"support" : "Support",
"home": "Home",
"maps": "Maps",
"refueling": "Refueling",
"transactions": "Transactions",
"menu": "Menu"
}
\ No newline at end of file
import 'package:MyGS/utility/variables/colors.dart';
import 'package:MyGS/utility/variables/sizes.dart';
import 'package:another_flushbar/flushbar.dart';
import 'package:flutter/material.dart';
import '../../utility/variables/text_styles.dart';
void infoFlashbar(
{required BuildContext context,
required String title,
required String message,
bool isError = false,}
) {
Flushbar(
duration: Duration(seconds: 4),
margin: EdgeInsets.all(font30),
padding: EdgeInsets.all(font10),
borderRadius: BorderRadius.circular(font5),
backgroundColor: isError? colorTranspRed:colorLightGreen,
// backgroundGradient: LinearGradient(
// colors: [
// isError? colorTranspRed:colorLightGreen,
// colorGrayTextFields,
// colorBlack
// ],
// stops: [0.4, 0.7, 1],
// ),
boxShadows: [
BoxShadow(
color: Colors.black45,
offset: Offset(font4, font4,),
blurRadius: font4,
),
],
dismissDirection: FlushbarDismissDirection.VERTICAL,
forwardAnimationCurve: Curves.fastLinearToSlowEaseIn,
title: title,
message: message,
titleText: Text(
title,
style: styleTextButton.copyWith(fontWeight: FontWeight.w600, fontSize: font14),
),
messageText: Text(
message,
style: styleTextButton.copyWith(fontSize: font14),
),
)..show(context);
}
\ No newline at end of file
import 'package:MyGS/components/buttons/regular_button.dart';
import 'package:MyGS/components/modals/info_bottom_flushbar.dart';
import 'package:MyGS/pages/access/welcome_page.dart';
import 'package:flutter/material.dart';
import '../../components/buttons/text_button.dart';
import '../../components/textfields/access_textfield.dart';
import '../../utility/translation/app_localization.dart';
import '../../utility/variables/sizes.dart';
import '../../utility/variables/text_styles.dart';
class EmailVerification extends StatefulWidget {
const EmailVerification({super.key});
@override
State<EmailVerification> createState() => _EmailVerificationState();
}
class _EmailVerificationState extends State<EmailVerification> {
int timer = 20;
void submitSendAgain() {
// Navigator.of(context)
// .push(MaterialPageRoute(builder: (context) => const LoginPage()));
}
void submitFinish() {
Future.delayed(const Duration(seconds: 5), () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) => const WelcomePage()));
});
}
@override
Widget build(BuildContext context) {
final TextEditingController codeController = TextEditingController();
return Scaffold(
// resizeToAvoidBottomInset: false,
appBar: _appBar(),
body: Center(
child: SingleChildScrollView(
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: font30, vertical: font50),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
AppLocalizations.of(context)
.translate('create_your_account'),
style: styleTitleContent,
),
SizedBox(
height: font20,
),
AuthorizationTextField(
controller: codeController,
text: AppLocalizations.of(context).translate('code'),
tap: () {},
),
SizedBox(
height: font8,
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'$timer s',
style: styleInscriptionsGreen.copyWith(
fontSize: font14),
),
ButtonText(
text: AppLocalizations.of(context)
.translate('send_again'),
onTap: () {
submitSendAgain();
})
],
)
],
),
SizedBox(
height: font28,
),
RegularButton(
context: AppLocalizations.of(context).translate('finish'),
onTap: () {
infoFlashbar(
context:context,
title: AppLocalizations.of(context).translate('email_varification'),
message: AppLocalizations.of(context).translate('success_email_ver'),
isError: false
);
submitFinish();
},
isGreen: true,
),
],
),
),
),
));
}
PreferredSizeWidget _appBar() {
return AppBar(
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => Navigator.of(context).pop(),
),
);
}
}
import 'package:MyGS/components/buttons/regular_button.dart';
import 'package:MyGS/pages/access/reg_page.dart';
import 'package:MyGS/pages/home/home_page.dart';
import 'package:MyGS/pages/tabs.dart';
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
......@@ -20,8 +23,8 @@ class LoginPage extends StatefulWidget {
class _LoginPageState extends State<LoginPage> {
void submitSignIn() {
// Navigator.of(context)
// .push(MaterialPageRoute(builder: (context) => const LoginPage()));
Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => const Tabs()));
}
void submitForgotPas() {
......@@ -35,8 +38,8 @@ class _LoginPageState extends State<LoginPage> {
}
void submitSignUp() {
// Navigator.of(context)
// .push(MaterialPageRoute(builder: (context) => const LoginPage()));
Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => const RegistrationPage()));
}
@override
......
import 'package:MyGS/components/buttons/regular_button.dart';
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter_svg/svg.dart';
import 'package:intl/intl.dart';
import '../../components/buttons/google_button.dart';
import '../../components/buttons/text_button.dart';
import '../../components/dividers/text_divider.dart';
import '../../components/textfields/access_textfield.dart';
import '../../utility/translation/app_localization.dart';
import '../../utility/variables/colors.dart';
import '../../utility/variables/sizes.dart';
import '../../utility/variables/text_styles.dart';
import 'email_verification_page.dart';
class RegistrationPage extends StatefulWidget {
const RegistrationPage({super.key});
@override
State<RegistrationPage> createState() => _RegistrationPage();
State<RegistrationPage> createState() => _RegistrationPageState();
}
class _RegistrationPage extends State<RegistrationPage> {
class _RegistrationPageState extends State<RegistrationPage> {
DateTime selectedDate = DateTime.parse("2000-06-26");
String selectedGender = '';
String selectedDateView = '';
void submitNextStep() {
Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => const EmailVerification()));
}
_selectDate(BuildContext context) async {
final DateTime? picked = await showDatePicker(
context: context,
initialDate: selectedDate, // Refer step 1
firstDate: DateTime(1940),
lastDate: DateTime(2020),
);
if (picked != null && picked != selectedDate) {
setState(() {
selectedDate = picked;
selectedDateView = DateFormat("dd.MM.yyyy").format(picked).toString();
});
}
}
@override
Widget build(BuildContext context) {
final TextEditingController nameController = TextEditingController();
final TextEditingController surnameController = TextEditingController();
final TextEditingController emailController = TextEditingController();
final TextEditingController phoneController = TextEditingController();
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => Navigator.of(context).pop(),
),
),
body: Container(
child: Text("Registration"),
// resizeToAvoidBottomInset: false,
appBar: _appBar(),
body: Center(
child: SingleChildScrollView(
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: font30, vertical: font50),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
AppLocalizations.of(context)
.translate('email_varification'),
style: styleTitleContent,
),
SizedBox(
height: font20,
),
AuthorizationTextField(
controller: nameController,
text: AppLocalizations.of(context).translate('name'),
tap: () {},
),
SizedBox(
height: font16,
),
AuthorizationTextField(
controller: surnameController,
text: AppLocalizations.of(context).translate('surname'),
tap: () {},
),
SizedBox(
height: font16,
),
AuthorizationTextField(
controller: emailController,
text: "Email",
tap: () {},
),
SizedBox(
height: font16,
),
AuthorizationTextField(
controller: phoneController,
text:
AppLocalizations.of(context).translate('phone_number'),
tap: () {},
),
SizedBox(
height: font16,
),
Row(
children: [
Expanded(
flex: 4,
child: Material(
shadowColor: colorBlack,
elevation: font4,
borderRadius: BorderRadius.circular(font5),
child: InkWell(
onTap: () {
_selectDate(context);
},
child: Container(
height: font50,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(font5),
color: colorTextfieldBackround,
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: font20, vertical: font12),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.stretch,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
selectedDateView == ''
? AppLocalizations.of(context)
.translate('dob')
: selectedDateView.toString(),
style: styleInscriptions,
),
SvgPicture.asset(
'assets/icons/bottom_arrow.svg'),
],
),
),
),
),
),
),
SizedBox(
width: font18,
),
Text(
AppLocalizations.of(context).translate('gender'),
style: styleInscriptions,
),
SizedBox(
width: font10,
),
Expanded(
flex: 1,
child: Material(
shadowColor: colorBlack,
elevation: font4,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(font5),
topLeft: Radius.circular(font5)),
child: InkWell(
onTap: () {
setState(() {
selectedGender = 'm';
});
},
child: Container(
height: font50,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(font5),
topLeft: Radius.circular(font5)),
color: selectedGender != 'm'
? colorTextfieldBackround
: colorMain.withOpacity(0.5),
),
child: Center(
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: font10, vertical: font14),
child:
SvgPicture.asset('assets/icons/male.svg'),
),
),
),
),
),
),
SizedBox(
width: font2,
),
Expanded(
flex: 1,
child: Material(
shadowColor: colorBlack,
elevation: font4,
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(font5),
topRight: Radius.circular(font5)),
child: InkWell(
onTap: () {
setState(() {
selectedGender = 'f';
});
},
child: Container(
height: font50,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(font5),
topRight: Radius.circular(font5)),
color: selectedGender != 'f'
? colorTextfieldBackround
: colorMain.withOpacity(0.5),
),
child: Center(
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: font10, vertical: font12),
child: SvgPicture.asset(
'assets/icons/female.svg',
),
),
),
),
),
),
),
],
),
SizedBox(
height: font28,
),
RegularButton(
context:
AppLocalizations.of(context).translate('next_step'),
onTap: () {
submitNextStep();
},
isGreen: true,
),
],
),
),
),
));
}
PreferredSizeWidget _appBar() {
return AppBar(
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => Navigator.of(context).pop(),
),
);
}
}
\ No newline at end of file
}
import 'package:MyGS/utility/variables/sizes.dart';
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/src/widgets/placeholder.dart';
import 'package:flutter_svg/svg.dart';
import '../../utility/translation/app_localization.dart';
import '../../utility/variables/colors.dart';
import '../../utility/variables/text_styles.dart';
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: _body(),
);
}
Widget _body() {
void submitFavorite() {
// Navigator.of(context)
// .push(MaterialPageRoute(builder: (context) => const EmailVerification()));
}
void submitAkce(int id) {
// Navigator.of(context)
// .push(MaterialPageRoute(builder: (context) => const EmailVerification()));
}
void submitNearesGS() {
// Navigator.of(context)
// .push(MaterialPageRoute(builder: (context) => const EmailVerification()));
}
void submitQuestions() {
// Navigator.of(context)
// .push(MaterialPageRoute(builder: (context) => const EmailVerification()));
}
void submitSupport() {
// Navigator.of(context)
// .push(MaterialPageRoute(builder: (context) => const EmailVerification()));
}
return Padding(
padding: EdgeInsets.symmetric(horizontal: font30, vertical: font50),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
child: Image.asset("assets/images/logo.png"),
width: font158,
height: font40,
),
InkWell(
onTap: () {
submitFavorite();
},
child: SvgPicture.asset('assets/icons/unfilled_heart.svg')),
],
),
SizedBox(
height: font79,
),
Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
AppLocalizations.of(context).translate('akce'),
style: styleTitleContent,
),
SizedBox(
height: font14,
),
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: [
InkWell(
onTap: () {
submitAkce(1);
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: font190,
height: font95,
decoration: BoxDecoration(
color: colorModalWindow,
borderRadius: BorderRadius.circular(font5)),
),
SizedBox(
height: font8,
),
Text("Title"),
],
),
),
SizedBox(
width: font12,
),
InkWell(
onTap: () {
submitAkce(1);
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: font190,
height: font95,
decoration: BoxDecoration(
color: colorModalWindow,
borderRadius: BorderRadius.circular(font5)),
),
SizedBox(
height: font8,
),
Text("Title"),
],
),
),
SizedBox(
width: font12,
),
InkWell(
onTap: () {
submitAkce(1);
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: font190,
height: font95,
decoration: BoxDecoration(
color: colorModalWindow,
borderRadius: BorderRadius.circular(font5)),
),
SizedBox(
height: font8,
),
Text("Title"),
],
),
),
],
),
),
SizedBox(
height: font40,
),
InkWell(
onTap: () {
submitNearesGS();
},
child: Container(
decoration: BoxDecoration(
color: colorMain,
borderRadius: BorderRadius.circular(font5)),
child: Padding(
padding: EdgeInsets.all(font10),
child: Column(
children: [
Row(
children: [
Text(
"Na Blatech 046, Pardubice ",
style: styleTitle1,
),
Text(
"(Firm name)",
style: styleTitle1.copyWith(
fontWeight: FontWeight.w600),
)
],
),
SizedBox(
height: font10,
),
Row(
children: [
Container(
decoration: BoxDecoration(
color: colorWhiteText,
borderRadius: BorderRadius.circular(font15),
),
child: Padding(
padding: EdgeInsets.symmetric(
vertical: font2, horizontal: font8),
child: Text(
"5.7 km",
style:
styleTitle1.copyWith(color: colorBlack),
),
),
),
SizedBox(
width: font12,
),
Text(
"Open (00:00 - 00:00)",
style: styleTitle1,
),
SizedBox(
width: font18,
),
SvgPicture.asset(
'assets/icons/right_round_arrow.svg',
height: font25,
),
],
)
],
),
),
),
),
SizedBox(
height: font40,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
InkWell(
onTap: () {
submitQuestions();
},
child: Container(
padding: EdgeInsets.symmetric(
vertical: font10, horizontal: font25),
width: font148,
height: font140,
decoration: BoxDecoration(
color: colorModalWindow,
borderRadius: BorderRadius.circular(font5)),
child: Align(
alignment: Alignment.bottomCenter,
child: Text(
AppLocalizations.of(context).translate('questions'),
style: styleTitleContent,
// textAlign: TextAlign.center,
),
),
),
),
InkWell(
onTap: () {
submitSupport();
},
child: Container(
padding: EdgeInsets.symmetric(
vertical: font10, horizontal: font25),
width: font148,
height: font140,
decoration: BoxDecoration(
color: colorModalWindow,
borderRadius: BorderRadius.circular(font5)),
child: Align(
alignment: Alignment.bottomCenter,
child: Text(
AppLocalizations.of(context).translate('support'),
style: styleTitleContent,
// textAlign: TextAlign.center,
),
),
),
)
],
)
],
),
)
],
),
),
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/src/widgets/placeholder.dart';
class MapsPage extends StatefulWidget {
const MapsPage({super.key});
@override
State<MapsPage> createState() => _MapsPageState();
}
class _MapsPageState extends State<MapsPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Text("Maps"),
);
}
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/src/widgets/placeholder.dart';
class MenuDrawer extends StatefulWidget {
const MenuDrawer({super.key});
@override
State<MenuDrawer> createState() => _MenuDrawerState();
}
class _MenuDrawerState extends State<MenuDrawer> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Text("Menu"),
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/src/widgets/placeholder.dart';
class RefuelingPage extends StatefulWidget {
const RefuelingPage({super.key});
@override
State<RefuelingPage> createState() => _RefuelingPageState();
}
class _RefuelingPageState extends State<RefuelingPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Text("Ref"),
);
}
}
import 'package:MyGS/pages/home/home_page.dart';
import 'package:MyGS/pages/menu/menu_drawer.dart';
import 'package:MyGS/pages/refueling/refueling_page.dart';
import 'package:MyGS/pages/transactions/transactions_page.dart';
import 'package:MyGS/utility/variables/colors.dart';
import 'package:MyGS/utility/variables/sizes.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import '../utility/translation/app_localization.dart';
import '../utility/variables/text_styles.dart';
import 'maps/maps_page.dart';
class Tabs extends StatefulWidget {
const Tabs({super.key});
@override
State<Tabs> createState() => _TabsState();
}
class _TabsState extends State<Tabs> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
late int _selectedIndex;
static const List<Widget> _pages = [
HomePage(),
MapsPage(),
RefuelingPage(),
TransactionsPage(),
MenuDrawer(),
];
static const List<String> _pagesLabel = [
"home",
"maps",
"refueling",
"transactions",
"menu"
];
@override
void initState() {
_selectedIndex = 0;
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
body: SafeArea(child: _pages[_selectedIndex]),
bottomNavigationBar: _bottomNavBar(),
drawer: MenuDrawer(),
floatingActionButton: _fab(),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
);
}
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
Widget _fab() {
return SizedBox(
width: font80,
height: font80,
child: FittedBox(
child: FloatingActionButton(
elevation: 0,
child:
SvgPicture.asset('assets/icons/fuel_panel.svg', height: font40),
backgroundColor: colorLightGreen,
onPressed: () {
_onItemTapped(2);
},
),
),
);
}
Widget _bottomNavBar() {
return BottomAppBar(
child: Container(
decoration: BoxDecoration(color: colorMenuPanel),
height: font94,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
MaterialButton(
minWidth: font40,
onPressed: () {
_onItemTapped(0);
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset(
'assets/icons/home_panel.svg',
width: font23,
),
Text(
AppLocalizations.of(context)
.translate(_pagesLabel[0]),
style: styleTitleContent.copyWith(fontSize: font14))
],
),
),
MaterialButton(
minWidth: font40,
onPressed: () {
_onItemTapped(1);
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset('assets/icons/maps_panel.svg',
width: font23),
Text(
AppLocalizations.of(context)
.translate(_pagesLabel[1]),
style: styleTitleContent.copyWith(fontSize: font14))
],
),
),
],
),
Row(
children: [
MaterialButton(
minWidth: font40,
onPressed: () {
_onItemTapped(3);
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset('assets/icons/transaktions_panel.svg',
width: font23),
Text(
AppLocalizations.of(context)
.translate(_pagesLabel[3]),
style: styleTitleContent.copyWith(fontSize: font14))
],
),
),
MaterialButton(
minWidth: font40,
onPressed: () {
_onItemTapped(4);
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset('assets/icons/menu_panel.svg',
width: font23),
Text(
AppLocalizations.of(context).translate(_pagesLabel[4]),
style: styleTitleContent.copyWith(fontSize: font14),
)
],
),
),
],
)
],
),
),
);
// return BottomNavigationBar(
// items: [
// BottomNavigationBarItem(
// label: AppLocalizations.of(context).translate(_pagesLabel[0]) ,
// icon: SvgPicture.asset('assets/icons/home_panel.svg')
// ),
// BottomNavigationBarItem(
// label: AppLocalizations.of(context).translate(_pagesLabel[1]) ,
// icon: SvgPicture.asset('assets/icons/maps_panel.svg')
// ),
// BottomNavigationBarItem(
// label: AppLocalizations.of(context).translate(_pagesLabel[2]) ,
// icon: SvgPicture.asset('assets/icons/home_panel.svg')
// ),
// BottomNavigationBarItem(
// label: AppLocalizations.of(context).translate(_pagesLabel[3]) ,
// icon: SvgPicture.asset('assets/icons/transaktions_panel.svg')
// ),
// BottomNavigationBarItem(
// label: AppLocalizations.of(context).translate(_pagesLabel[4]) ,
// icon: SvgPicture.asset('assets/icons/menu_panel.svg')
// ),
// ],
// currentIndex: _selectedIndex,
// selectedItemColor: colorMain,
// unselectedItemColor: colorBlack,
// backgroundColor: colorMenuPanel,
// onTap: _onItemTapped,
// );
}
}
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/src/widgets/placeholder.dart';
class TransactionsPage extends StatefulWidget {
const TransactionsPage({super.key});
@override
State<TransactionsPage> createState() => _TransactionsPageState();
}
class _TransactionsPageState extends State<TransactionsPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Text("Transactions"),
);
}
}
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
another_flushbar:
dependency: "direct main"
description:
name: another_flushbar
sha256: fa09f8a4ca582c417669b7b1d0e85ce65bd074d80bb0dcbb1302ad1b22bdc3ef
url: "https://pub.dev"
source: hosted
version: "1.12.29"
async:
dependency: transitive
description:
......
......@@ -39,6 +39,7 @@ dependencies:
shared_preferences: ^2.0.13
flutter_svg_provider: ^1.0.3
flutter_svg: ^1.0.3
another_flushbar: ^1.10.28
# The following adds the Cupertino Icons font to your application.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment