MIF_E31211879/isipiringku/lib/pages/home/beranda/beranda_tab.dart

676 lines
23 KiB
Dart

import 'package:flutter/material.dart';
import 'package:isipiringku/pages/home/beranda/detail.dart';
import 'package:isipiringku/pages/home/kalori/kalori_harian.dart';
import 'package:isipiringku/pages/home/kalori/kalori_tab.dart';
import 'package:isipiringku/pages/home/tambahdarah/kalender_tab.dart';
import 'package:isipiringku/pages/login/login_page.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(BerandaTab());
}
class BerandaTab extends StatefulWidget {
@override
State<BerandaTab> createState() => _BerandaTabState();
}
class _BerandaTabState extends State<BerandaTab> {
late SharedPreferences logindata;
String username = '';
@override
void initState() {
super.initState();
initial();
}
void initial() async {
logindata = await SharedPreferences.getInstance();
setState(() {
username = logindata.getString('username') ?? '';
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
toolbarHeight: 20,
elevation: 0,
backgroundColor: Colors.deepOrange,
),
body: ListView(
children: [
Container(
height: 170.0,
width: double.infinity,
decoration: BoxDecoration(
color: Colors.deepOrange,
),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
margin: EdgeInsets.only(left: 24),
child: Text(
'Hi, $username',
style: TextStyle(
color: Colors.white,
fontSize: 24,
fontWeight: FontWeight.bold,
),
),
),
Container(
margin: EdgeInsets.only(right: 24),
child: Transform.scale(
scale: 1.5,
child: Icon(
Icons.notifications,
color: Colors.yellow,
),
),
),
],
),
Padding(
padding: const EdgeInsets.only(
left: 15,
right: 15,
top: 25,
),
child: Container(
height: 100,
width: 320,
decoration: BoxDecoration(
color: Colors.brown.withOpacity(0.75),
borderRadius: BorderRadius.circular(15.0),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Icon(
Icons.transgender_rounded,
size: 60.0,
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Umur',
style: TextStyle(
color: Colors.white,
fontSize: 14,
),
textAlign: TextAlign.center,
),
SizedBox(
height: 10.0,
),
Text(
'15 Tahun',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontWeight: FontWeight.bold,
),
textAlign: TextAlign.center,
),
],
),
VerticalDivider(
color: Colors.white,
thickness: 1.0,
indent: 10.0,
endIndent: 10.0,
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Tinggi\nBadan',
style: TextStyle(
color: Colors.white,
fontSize: 14,
),
textAlign: TextAlign.center,
),
SizedBox(
height: 10.0,
),
Text(
'165 cm',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontWeight: FontWeight.bold,
),
textAlign: TextAlign.center,
),
],
),
VerticalDivider(
color: Colors.white,
thickness: 1.0,
indent: 10.0,
endIndent: 10.0,
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Berat\nBadan',
style: TextStyle(
color: Colors.white,
fontSize: 14,
),
textAlign: TextAlign.center,
),
SizedBox(
height: 10.0,
),
Text(
'76 kg',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontWeight: FontWeight.bold,
),
textAlign: TextAlign.center,
),
],
),
],
),
),
),
],
),
),
SizedBox(
height: 10,
),
Container(
height: 150,
width: 300,
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Colors.orange, Colors.white],
),
borderRadius: BorderRadius.circular(15.0),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Rata-rata \nKalori Makanan',
style: TextStyle(
color: Colors.black,
fontSize: 14,
fontWeight: FontWeight.bold,
),
textAlign: TextAlign.center,
),
Stack(
alignment: Alignment.center,
children: [
Container(
width: 130,
height: 100,
decoration: BoxDecoration(
color: Colors.yellow,
borderRadius: BorderRadius.circular(15.0),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Container(
width: 100,
height: 30,
alignment: Alignment.topCenter,
decoration: BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.circular(15.0),
),
padding: EdgeInsets.all(
3.0), // Mengatur padding ke semua sisi sebesar 8.0
child: Center(
child: Text(
'Bulan Lalu',
style: TextStyle(
color: Colors.black,
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
),
),
],
),
),
Positioned(
child: Padding(
padding: EdgeInsets.all(
30.0), // Atur padding sesuai kebutuhan Anda
child: Text(
'1130 Kkal',
style: TextStyle(
color: Colors.black,
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
),
),
],
),
SizedBox(
height: 10.0,
),
],
),
VerticalDivider(
color: Colors.white,
thickness: 1.0,
indent: 10.0,
endIndent: 10.0,
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Rata-rata \nKalori Makanan',
style: TextStyle(
color: Colors.black,
fontSize: 14,
fontWeight: FontWeight.bold,
),
textAlign: TextAlign.center,
),
Container(
width: 130,
height: 100,
decoration: BoxDecoration(
color: Colors.yellow,
borderRadius: BorderRadius.circular(15.0),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Container(
width: 100,
height: 30,
alignment: Alignment.topCenter,
decoration: BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.circular(15.0),
),
child: Center(
child: Text(
'Bulan Ini',
style: TextStyle(
color: Colors.black,
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
),
),
Positioned(
child: Padding(
padding: EdgeInsets.all(
10.0), // Atur padding sesuai kebutuhan Anda
child: Text(
'1500 Kkal',
style: TextStyle(
color: Colors.black,
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
),
),
],
),
),
SizedBox(
height: 10.0,
),
],
),
],
),
),
SizedBox(
height: 10,
width: 16,
),
Text(
" Pengingat",
style: TextStyle(
color: Colors.red,
fontSize: 15,
fontWeight: FontWeight.bold,
),
textAlign: TextAlign.left,
),
SizedBox(
height: 15,
),
GestureDetector(
onTap: () {
// Arahkan ke class KaloriTab di sini
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
KaloriTab()), // Ganti dengan rute yang sesuai
);
},
child: Container(
height: 30,
width: 80,
decoration: BoxDecoration(
color: Color.fromARGB(255, 253, 207, 207),
borderRadius: BorderRadius.circular(15.0),
),
child: Center(
child: Text(
'Anda Belum Melakukan Pengisian Konsumsi Kegiatan Hari Ini!',
style: TextStyle(
color: Colors.red,
fontSize: 12,
),
textAlign: TextAlign.left,
),
),
),
),
SizedBox(
height: 15,
),
GestureDetector(
onTap: () {
// Arahkan ke class KalenderTab di sini
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
KalenderTab()), // Ganti dengan rute yang sesuai
);
},
child: Container(
height: 30,
width: 100,
decoration: BoxDecoration(
color: Colors.yellow,
borderRadius: BorderRadius.circular(15.0),
),
child: Center(
child: Text(
'Anda Belum Melakukan Pengisian Tambah Darah',
style: TextStyle(
color: Colors.red,
fontSize: 12,
),
textAlign: TextAlign.left,
),
),
),
),
ElevatedButton(
onPressed: () {
logindata.setBool('login', true);
Navigator.pushReplacement(context,
new MaterialPageRoute(builder: (context) => LoginPage()));
},
child: Text('Log Out'),
),
SizedBox(height: 20),
Text(
" Informasi Gizi & Kesehatan",
style: TextStyle(
color: Colors.red,
fontSize: 15,
fontWeight: FontWeight.bold,
),
textAlign: TextAlign.left,
),
Column(
children: [
//arah ke detail kalori
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
//icon
Container(
height: 80,
padding: EdgeInsets.all(12),
decoration: BoxDecoration(
// color: Colors.red,
borderRadius: BorderRadius.circular(12),
),
// child: Image.asset('assets/image/sayur.png'),
),
SizedBox(
width: 20,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Isi Piringku',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20,
),
),
SizedBox(
height: 12,
),
Text(
'Makanan ini mengandung salmon',
style: TextStyle(
fontSize: 16,
color: Colors.grey,
),
),
],
),
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Detail()),
);
},
child: Icon(Icons.arrow_forward_ios),
)
],
),
//transaction
],
),
Column(
children: [
//arah ke detail kalori
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
//icon
Container(
height: 80,
padding: EdgeInsets.all(12),
decoration: BoxDecoration(
// color: Colors.red,
borderRadius: BorderRadius.circular(12),
),
// child: Image.asset('assets/image/sayur.png'),
),
SizedBox(
width: 20,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Isi Piringku',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20,
),
),
SizedBox(
height: 12,
),
Text(
'Makanan ini mengandung salmon',
style: TextStyle(
fontSize: 16,
color: Colors.grey,
),
),
],
),
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Detail()),
);
},
child: Icon(Icons.arrow_forward_ios),
)
],
),
//transaction
],
),
Column(
children: [
//arah ke detail kalori
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
//icon
Container(
height: 80,
padding: EdgeInsets.all(12),
decoration: BoxDecoration(
// color: Colors.red,
borderRadius: BorderRadius.circular(12),
),
// child: Image.asset('assets/image/sayur.png'),
),
SizedBox(
width: 20,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Isi Piringku',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20,
),
),
SizedBox(
height: 12,
),
Text(
'Makanan ini mengandung salmon',
style: TextStyle(
fontSize: 16,
color: Colors.grey,
),
),
],
),
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => KaloriHarian()),
);
},
child: Icon(Icons.arrow_forward_ios),
)
],
),
//transaction
],
),
Column(
children: [
//arah ke detail kalori
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
//icon
Container(
height: 80,
padding: EdgeInsets.all(12),
decoration: BoxDecoration(
// color: Colors.red,
borderRadius: BorderRadius.circular(12),
),
// child: Image.asset('assets/image/sayur.png'),
),
SizedBox(
width: 20,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Isi Piringku',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20,
),
),
SizedBox(
height: 12,
),
Text(
'Makanan ini mengandung salmon',
style: TextStyle(
fontSize: 16,
color: Colors.grey,
),
),
],
),
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => KalenderTab()),
);
},
child: Icon(Icons.arrow_forward_ios),
),
],
),
//transaction
],
),
],
),
);
}
}