Sistem-Pakar-Diagnosa-Penya.../frontend/lib/user/profile_pakar_page.dart

235 lines
8.5 KiB
Dart

import 'package:flutter/material.dart';
class ProfilPakarPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFF9DC08D),
body: Stack(
children: [
// Custom AppBar with back button
Positioned(
top: 0,
left: 0,
right: 0,
child: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Row(
children: [
IconButton(
icon: Icon(Icons.arrow_back, color: Colors.white, size: 28),
onPressed: () {
Navigator.pop(context);
},
),
Expanded(
child: Text(
"Profil Pakar",
style: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
color: Colors.white,
),
textAlign: TextAlign.center,
),
),
// This creates visual balance with the back button
SizedBox(width: 48),
],
),
),
),
),
// Main Content
SafeArea(
child: Padding(
padding: const EdgeInsets.only(top: 60.0),
child: Center(
child: SingleChildScrollView(
padding: EdgeInsets.all(24.0),
child: Column(
children: [
// Profile Card
Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.1),
spreadRadius: 1,
blurRadius: 12,
offset: Offset(0, 5),
),
],
),
child: Column(
children: [
// Top part with avatar and name
Container(
padding: EdgeInsets.all(24),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Column(
children: [
// Avatar with decorative border
Container(
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: Color(0xFF9DC08D),
width: 4,
),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.1),
spreadRadius: 2,
blurRadius: 8,
offset: Offset(0, 3),
),
],
),
child: CircleAvatar(
radius: 60,
backgroundColor: Colors.grey[200],
backgroundImage: AssetImage(
'assets/images/expert_photo.jpg',
),
),
),
SizedBox(height: 20),
// Name
Text(
"Gallyndra Fatkhu Dinata S.P., M.P",
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Color(0xFF40513B),
),
textAlign: TextAlign.center,
),
SizedBox(height: 6),
],
),
),
// Information section
Padding(
padding: const EdgeInsets.all(24.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildInfoRow(
Icons.school,
"Dosen Program Studi Produksi Tanaman Hortikultura"
),
SizedBox(height: 16),
_buildInfoRow(
Icons.record_voice_over,
"Narasumber bidang penyakit & hama tanaman"
),
SizedBox(height: 16),
_buildInfoRow(
Icons.agriculture,
"Ahli Pertanian dan Hama Tanaman"
),
],
),
),
],
),
),
SizedBox(height: 20),
// Specialty Card
Container(
width: double.infinity,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.1),
spreadRadius: 1,
blurRadius: 12,
offset: Offset(0, 5),
),
],
),
),
],
),
),
),
),
),
],
),
);
}
Widget _buildInfoRow(IconData icon, String text) {
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Color(0xFFEDF1D6),
borderRadius: BorderRadius.circular(12),
),
child: Icon(
icon,
color: Color(0xFF609966),
size: 22,
),
),
SizedBox(width: 14),
Expanded(
child: Padding(
padding: const EdgeInsets.only(top: 10.0),
child: Text(
text,
style: TextStyle(
fontSize: 16,
color: Colors.grey[800],
height: 1.4,
),
),
),
),
],
);
}
Widget _buildSpecialtyItem(String text) {
return Padding(
padding: const EdgeInsets.only(bottom: 12.0),
child: Row(
children: [
Icon(
Icons.check_circle,
color: Color(0xFF609966),
size: 20,
),
SizedBox(width: 12),
Text(
text,
style: TextStyle(
fontSize: 16,
color: Colors.grey[800],
),
),
],
),
);
}
}