country profile ph-5

This commit is contained in:
Juki-shiba 2025-06-10 13:18:47 +05:30
parent ca76dc858a
commit 96f9ec97e4
11 changed files with 261 additions and 212 deletions

View File

@ -2,27 +2,27 @@ C/C++ Structured Loge
c
aC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÷ã‘¥õ2  Ì²Š¦ô2b
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ëËËÂõ2  Ì²Š¦ô2b
`
^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build.json  øã‘¥õ2¾ Ø²Š¦ô2g
^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build.json  ëËËÂõ2¾ Ø²Š¦ô2g
e
cC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build_mini.json  øã‘¥õ2 粊¦ô2T
cC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build_mini.json  ëËËÂõ2 粊¦ô2T
R
PC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja  øã‘¥õ2<18>Ü Æ±Š¦ô2X
PC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja  ëËËÂõ2<18>Ü Æ±Š¦ô2X
V
TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja.txt  øã‘¥õ2]
TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja.txt  ëËËÂõ2]
[
YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build_file_index.txt  øã‘¥õ2 S ¦ô2^
YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build_file_index.txt  ëËËÂõ2 S ¦ô2^
\
ZC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json  øã‘¥õ2b
ZC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json  ëËËÂõ2b
`
^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json.bin  øã‘¥õ2 h
^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json.bin  ëËËÂõ2 h
f
dC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\metadata_generation_command.txt  øã‘¥õ2
dC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\metadata_generation_command.txt  ëËËÂõ2
Ê 벊¦ô2[
Y
WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\prefab_config.json  øã‘¥õ2  ( 첊¦ô2`
WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\prefab_config.json  ëËËÂõ2  ( 첊¦ô2`
^
\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\symbol_folder_index.txt  øã‘¥õ2  S í²Š¦ô2W
\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\symbol_folder_index.txt  ìËËÂõ2  S í²Š¦ô2W
U
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  øã‘¥õ2 § ÑÜÐßÓ2
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ìËËÂõ2 § ÑÜÐßÓ2

View File

@ -2,27 +2,27 @@ C/C++ Structured Logg
e
cC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ïû‘¥õ2  啦ô2d
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  £ÌËÂõ2  啦ô2d
b
`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build.json  ïû‘¥õ2Â 땦ô2i
`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build.json  £ÌËÂõ2 땦ô2i
g
eC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build_mini.json  ïû‘¥õ2 <20>¦ô2V
eC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build_mini.json  £ÌËÂõ2 <20>¦ô2V
T
RC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja  ðû‘¥õ2‹Ü Í“¦ô2Z
RC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja  £ÌËÂõ2‹Ü Í“¦ô2Z
X
VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja.txt  ðû‘¥õ2_
VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja.txt  £ÌËÂõ2_
]
[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build_file_index.txt  ðû‘¥õ2 S —¦ô2`
[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build_file_index.txt  £ÌËÂõ2 S —¦ô2`
^
\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json  ðû‘¥õ2d
\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json  £ÌËÂõ2d
b
`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json.bin  ðû‘¥õ2 j
`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json.bin  £ÌËÂõ2 j
h
fC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\metadata_generation_command.txt  ðû‘¥õ2
fC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\metadata_generation_command.txt  £ÌËÂõ2
Ô¦ô2]
[
YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\prefab_config.json  ðû‘¥õ2  ( ¦ô2b
YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\prefab_config.json  ¤ÌËÂõ2  ( ¦ô2b
`
^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\symbol_folder_index.txt  ðû‘¥õ2  U •¦ô2W
^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\symbol_folder_index.txt  ¤ÌËÂõ2  U •¦ô2W
U
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ðû‘¥õ2 § ÑÜÐßÓ2
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ¤ÌËÂõ2 § ÑÜÐßÓ2

View File

@ -2,27 +2,27 @@ C/C++ Structured Log_
]
[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Õþ‘¥õ2  ½¦ô2\
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÄÌËÂõ2  ½¦ô2\
Z
XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build.json  Õþ‘¥õ2² <20>½¦ô2a
XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build.json  ÄÌËÂõ2² <20>½¦ô2a
_
]C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build_mini.json  Õþ‘¥õ2 ”½¦ô2N
]C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build_mini.json  ÄÌËÂõ2 ”½¦ô2N
L
JC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja  Õþ‘¥õ2ãÛ ¢¼¦ô2R
JC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja  ÄÌËÂõ2ãÛ ¢¼¦ô2R
P
NC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja.txt  Õþ‘¥õ2W
NC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja.txt  ÄÌËÂõ2W
U
SC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build_file_index.txt  Õþ‘¥õ2 S —½¦ô2X
SC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build_file_index.txt  ÄÌËÂõ2 S —½¦ô2X
V
TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json  Õþ‘¥õ2\
TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json  ÄÌËÂõ2\
Z
XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json.bin  Õþ‘¥õ2 b
XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json.bin  ÄÌËÂõ2 b
`
^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\metadata_generation_command.txt  Õþ‘¥õ2
^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\metadata_generation_command.txt  ÄÌËÂõ2
¬ •½¦ô2U
S
QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\prefab_config.json  Õþ‘¥õ2  ( ½¦ô2Z
QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\prefab_config.json  ÄÌËÂõ2  ( ½¦ô2Z
X
VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\symbol_folder_index.txt  Õþ‘¥õ2  M ½¦ô2W
VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\symbol_folder_index.txt  ÄÌËÂõ2  M ½¦ô2W
U
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  Õþ‘¥õ2 § ÑÜÐßÓ2
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ÄÌËÂõ2 § ÑÜÐßÓ2

View File

@ -2,27 +2,27 @@ C/C++ Structured Logb
`
^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  §ƒ’¥õ2  ˜Ë¦ô2_
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  êÌËÂõ2  ˜Ë¦ô2_
]
[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build.json  §ƒ’¥õ2¸ œË¦ô2d
[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build.json  êÌËÂõ2¸ œË¦ô2d
b
`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build_mini.json  §ƒ’¥õ2 ŸË¦ô2Q
`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build_mini.json  êÌËÂõ2 ŸË¦ô2Q
O
MC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja  ¨ƒ’¥õ2òÛ «Ê¦ô2U
MC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja  ëÌËÂõ2òÛ «Ê¦ô2U
S
QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja.txt  ¨ƒ’¥õ2Z
QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja.txt  ëÌËÂõ2Z
X
VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build_file_index.txt  ¨ƒ’¥õ2 S ¤Ë¦ô2[
VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build_file_index.txt  ëÌËÂõ2 S ¤Ë¦ô2[
Y
WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json  ¨ƒ’¥õ2_
WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json  ëÌËÂõ2_
]
[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json.bin  ¨ƒ’¥õ2 e
[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json.bin  ëÌËÂõ2 e
c
aC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\metadata_generation_command.txt  ¨ƒ’¥õ2
aC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\metadata_generation_command.txt  ëÌËÂõ2
» ¡Ë¦ô2X
V
TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\prefab_config.json  ¨ƒ’¥õ2  ( ¢Ë¦ô2]
TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\prefab_config.json  ëÌËÂõ2  ( ¢Ë¦ô2]
[
YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\symbol_folder_index.txt  ¨ƒ’¥õ2  P £Ë¦ô2W
YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\symbol_folder_index.txt  ëÌËÂõ2  P £Ë¦ô2W
U
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ¨ƒ’¥õ2 § ÑÜÐßÓ2
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ëÌËÂõ2 § ÑÜÐßÓ2

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -1,5 +1,4 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
@ -19,124 +18,138 @@ class DetailedCountryProfilePage extends StatelessWidget {
double width = MediaQuery.of(context).size.width;
return BaseScaffold(
title: const Text('Country Profile'),
// hasDrawer: false,
title: const Text('Country Profile'),
showBackButton: true,
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
// Country name and flag
Center(
child: Column(
children: [
Text(flag, style: const TextStyle(fontSize: 48)),
const SizedBox(height: 8),
Text(
countryName.toUpperCase(),
style: const TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
// Country name and flag (Header Section)
Center(
child: Column(
children: [
Text(
flag,
style: const TextStyle(fontSize: 48),
),
),
],
const SizedBox(height: 8),
Text(
countryName.toUpperCase(),
style: const TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
),
),
],
),
),
),
const SizedBox(height: 24),
const SizedBox(height: 16),
// Government Officials
GridView.count(
crossAxisCount: 2,
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
mainAxisSpacing: 12,
crossAxisSpacing: 12,
childAspectRatio: 2.0,
children: const [
_LeaderCard(
imagePath: 'assets/country-profile/alberto.png',
name: 'Alberto Fernández',
position: 'President',
),
_LeaderCard(
imagePath: 'assets/country-profile/alberto.png',
name: 'President of Chamber of Deputies Cecilia Moreau',
position: 'President',
),
_LeaderCard(
imagePath: 'assets/country-profile/alberto.png',
name: 'Alberto Fernández',
position: 'President of Chamber of Deputies Cecilia Moreau',
),
_LeaderCard(
imagePath: 'assets/country-profile/alberto.png',
name: 'Alberto Fernández',
position: 'President',
),
],
),
const SizedBox(height: 24),
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Expanded(
child: _CategoryButton(
title: 'Demography',
color: const Color(0xFFD7C1AF),
onTap: () => showCategoryPopup(context, 'Demography'),
),
// Government Officials (Grid Section)
SizedBox(
height: 220, // Fixed height for the GridView to control its size
child: GridView.count(
crossAxisCount: 2,
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
mainAxisSpacing: 12,
crossAxisSpacing: 12,
childAspectRatio: 2.0,
children: const [
_LeaderCard(
imagePath: 'assets/country-profile/alberto.png',
name: 'Alberto Fernández',
position: 'President',
),
const SizedBox(width: 16),
Expanded(
child: _CategoryButton(
title: 'GDP',
color: const Color(0xFFAEC6CF),
onTap: () => showCategoryPopup(context, 'GDP'),
),
_LeaderCard(
imagePath: 'assets/country-profile/alberto.png',
name: 'Cristina Fernández de Kirchner',
position: 'Vice-President',
),
_LeaderCard(
imagePath: 'assets/country-profile/alberto.png',
name: 'Agustin Rossi',
position: 'Chief of the Cabinet of Ministers',
),
_LeaderCard(
imagePath: 'assets/country-profile/alberto.png',
name: 'Cecilia Moreau',
position: 'President of Chamber of Deputies',
),
],
),
const SizedBox(height: 16),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
),
const SizedBox(height: 12), // Further reduced spacing
// Category Buttons (Button Section)
Flexible(
fit: FlexFit.loose, // Allow the section to take only the space it needs
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Expanded(
child: _CategoryButton(
title: 'FDI',
color: const Color(0xFFD7AFAF),
onTap: () => showCategoryPopup(context, 'FDI'),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Expanded(
child: _CategoryButton(
title: 'Demography',
overlayColor: const Color(0xE6AA947F),
backgroundImagePath: 'assets/country-profile/CategoryFile/Demo.png',
onTap: () => showCategoryPopup(context, 'Demography'),
),
),
const SizedBox(width: 12),
Expanded(
child: _CategoryButton(
title: 'GDP',
overlayColor: const Color(0xFFAEC6CF),
backgroundImagePath: 'assets/country-profile/CategoryFile/GDP.png',
onTap: () => showCategoryPopup(context, 'GDP'),
),
),
],
),
const SizedBox(width: 16),
Expanded(
child: _CategoryButton(
title: 'Trade',
color: const Color(0xFFAFCFAF),
onTap: () => showCategoryPopup(context, 'Trade'),
),
const SizedBox(height: 12),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Expanded(
child: _CategoryButton(
title: 'FDI',
overlayColor: const Color(0xD8C39898),
backgroundImagePath: 'assets/country-profile/CategoryFile/FDI.png',
onTap: () => showCategoryPopup(context, 'FDI'),
),
),
const SizedBox(width: 12),
Expanded(
child: _CategoryButton(
title: 'Trade',
overlayColor: const Color(0xD8B0C5A4),
backgroundImagePath: 'assets/country-profile/CategoryFile/Trade.png',
onTap: () => showCategoryPopup(context, 'Trade'),
),
),
],
),
const SizedBox(height: 12),
// Full-width button
_CategoryButton(
title: 'Bilateral Trade',
overlayColor: const Color(0xB29CAFAB),
backgroundImagePath: 'assets/country-profile/CategoryFile/BilateralTrade.png',
onTap: () => showCategoryPopup(context, 'Bilateral Trade'),
),
],
),
const SizedBox(height: 16),
// Full-width button
_CategoryButton(
title: 'Bilateral Trade',
color: const Color(0xFF9FAFCF),
onTap: () => showCategoryPopup(context, 'Bilateral Trade'),
),
],
)
],
),
],
),
),
),
);
}
}
class _LeaderCard extends StatelessWidget {
final String imagePath;
final String name;
@ -154,7 +167,6 @@ class _LeaderCard extends StatelessWidget {
return Container(
width: 170,
height: 100,
// padding: const EdgeInsets.all(5),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(12),
@ -203,21 +215,24 @@ class _LeaderCard extends StatelessWidget {
],
),
),
)
),
],
),
);
}
}
class _CategoryButton extends StatelessWidget {
final String title;
final Color color;
final Color overlayColor;
final String backgroundImagePath;
final VoidCallback onTap;
const _CategoryButton({
super.key,
required this.title,
required this.color,
required this.overlayColor,
required this.backgroundImagePath,
required this.onTap,
});
@ -225,26 +240,43 @@ class _CategoryButton extends StatelessWidget {
Widget build(BuildContext context) {
return GestureDetector(
onTap: onTap,
child: Container(
height: 100,
width: double.infinity, // This ensures full width
decoration: BoxDecoration(
color: color,
borderRadius: BorderRadius.circular(12),
),
alignment: Alignment.center,
child: Text(
title,
style: const TextStyle(
fontSize: 16,
color: Colors.white,
fontWeight: FontWeight.bold,
child: ClipRRect(
borderRadius: BorderRadius.circular(12),
child: Container(
height: 100,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(backgroundImagePath),
fit: BoxFit.cover,
colorFilter: ColorFilter.mode(
overlayColor.withOpacity(0.8),
BlendMode.dstATop,
),
),
),
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 2.0, sigmaY: 2.0),
child: Container(
color: overlayColor.withOpacity(0.6),
child: Center(
child: Text(
title,
style: const TextStyle(
fontSize: 18,
color: Colors.white,
fontWeight: FontWeight.bold,
),
textAlign: TextAlign.center,
),
),
),
),
),
),
);
}
}
class CategoryPopupContent extends StatelessWidget {
final String category;
@ -268,21 +300,18 @@ class CategoryPopupContent extends StatelessWidget {
),
),
const SizedBox(height: 16),
_DemographyItem(
icon: Icons.location_city,
title: 'Capital City',
value: 'Buenos Aires',
),
Divider(),
const Divider(),
_DemographyItem(
icon: Icons.map,
title: 'Surface Area',
value: '2,780,400 sq. km',
),
Divider(),
const Divider(),
_DemographyStatItem(
icon: Icons.groups,
title: '2021 Population',
@ -290,8 +319,7 @@ class CategoryPopupContent extends StatelessWidget {
suffix: '32 ↑ Rank',
suffixStyle: const TextStyle(color: Colors.green, fontSize: 12),
),
Divider(),
const Divider(),
_DemographyStatItem(
icon: Icons.male,
title: '2021 Male Population',
@ -299,8 +327,7 @@ class CategoryPopupContent extends StatelessWidget {
suffix: '0.98% ↑ Growth Rate',
valueColor: Colors.deepPurple,
),
Divider(),
const Divider(),
_DemographyStatItem(
icon: Icons.female,
title: '2021 Female Population',
@ -308,7 +335,6 @@ class CategoryPopupContent extends StatelessWidget {
suffix: '0.93% ↑ Growth Rate',
valueColor: Colors.purple,
),
const SizedBox(height: 16),
],
);
@ -327,7 +353,6 @@ class CategoryPopupContent extends StatelessWidget {
),
),
const SizedBox(height: 16),
_GDPMetricItem(
icon: Icons.apartment,
title: '2021 Nominal GDP (AED)',
@ -336,8 +361,7 @@ class CategoryPopupContent extends StatelessWidget {
rankDirection: '',
rankColor: Colors.red,
),
Divider(),
const Divider(),
_GDPMetricItem(
icon: Icons.public,
title: '2021 Real GDP (AED)',
@ -346,8 +370,7 @@ class CategoryPopupContent extends StatelessWidget {
rankDirection: '',
rankColor: Colors.red,
),
Divider(),
const Divider(),
_GDPMetricItem(
icon: Icons.groups_3,
title: '2021 GDP Per Capita (AED)',
@ -356,10 +379,9 @@ class CategoryPopupContent extends StatelessWidget {
rankDirection: '',
rankColor: Colors.red,
),
Divider(),
const Divider(),
const SizedBox(height: 8),
Icon(Icons.stacked_bar_chart, color: Colors.grey),
const Icon(Icons.stacked_bar_chart, color: Colors.grey),
const SizedBox(height: 4),
const Text(
'Income Level',
@ -388,7 +410,6 @@ class CategoryPopupContent extends StatelessWidget {
),
),
const SizedBox(height: 16),
_FDIItem(
icon: Icons.trending_down,
title: '2020 FDI Outflows (AED)',
@ -396,8 +417,7 @@ class CategoryPopupContent extends StatelessWidget {
growthRate: '-15.94%',
isPositive: false,
),
Divider(),
const Divider(),
_FDIItem(
icon: Icons.swap_horizontal_circle_outlined,
title: '2020 FDI Inflows (AED)',
@ -405,8 +425,7 @@ class CategoryPopupContent extends StatelessWidget {
growthRate: '-39.68%',
isPositive: false,
),
Divider(),
const Divider(),
_FDIItem(
icon: Icons.thumb_up_alt_outlined,
title: '2021 FDI Stocks (AED)',
@ -432,7 +451,6 @@ class CategoryPopupContent extends StatelessWidget {
),
),
const SizedBox(height: 16),
_TradeItem(
icon: Icons.cached,
title: '2021 Total Trade (AED)',
@ -440,8 +458,7 @@ class CategoryPopupContent extends StatelessWidget {
growthRate: '39.89%',
isPositive: true,
),
Divider(),
const Divider(),
_TradeItem(
icon: Icons.download_outlined,
title: '2021 Imports (AED)',
@ -449,8 +466,7 @@ class CategoryPopupContent extends StatelessWidget {
growthRate: '40.79%',
isPositive: true,
),
Divider(),
const Divider(),
_TradeItem(
icon: Icons.upload_outlined,
title: '2021 Exports (AED)',
@ -495,9 +511,18 @@ class CategoryPopupContent extends StatelessWidget {
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: const [
_BilateralTradeValueBox(label: 'Total Import', value: '\$390.2M', color: Color(0xFF00B292)),
_BilateralTradeValueBox(label: 'Total Export', value: '\$42.2M', color: Color(0xFFDE4D86)),
_BilateralTradeValueBox(label: 'Total ReExport', value: '\$40.2M', color: Color(0xFF4D52A1)),
_BilateralTradeValueBox(
label: 'Total Import',
value: '\$390.2M',
color: Color(0xFF00B292)),
_BilateralTradeValueBox(
label: 'Total Export',
value: '\$42.2M',
color: Color(0xFFDE4D86)),
_BilateralTradeValueBox(
label: 'Total ReExport',
value: '\$40.2M',
color: Color(0xFF4D52A1)),
],
),
const SizedBox(height: 24),
@ -505,25 +530,41 @@ class CategoryPopupContent extends StatelessWidget {
child: Text(
'Top 5 Import Commodities',
style: TextStyle(
fontSize: 16, fontWeight: FontWeight.bold, color: Color(0xFF4FBFA8)),
fontSize: 16,
fontWeight: FontWeight.bold,
color: Color(0xFF4FBFA8)),
),
),
const SizedBox(height: 12),
_CommodityRow(icon: Icons.eco, label: 'Vegetable Products', value: '\$198.6M'),
_CommodityRow(icon: Icons.liquor, label: 'Foodstuffs, Beverages, Spirits And Tobacco', value: '\$89.9M'),
_CommodityRow(icon: Icons.build, label: 'Base Metals And Articles Of Base Metal', value: '\$65.6M'),
_CommodityRow(icon: Icons.pets, label: 'Live Animals And Their Products', value: '\$23.7M'),
_CommodityRow(icon: Icons.science, label: 'Products Of The Chemical or Allied Industries', value: '\$4.7M'),
_CommodityRow(
icon: Icons.eco,
label: 'Vegetable Products',
value: '\$198.6M'),
_CommodityRow(
icon: Icons.liquor,
label: 'Foodstuffs, Beverages, Spirits And Tobacco',
value: '\$89.9M'),
_CommodityRow(
icon: Icons.build,
label: 'Base Metals And Articles Of Base Metal',
value: '\$65.6M'),
_CommodityRow(
icon: Icons.pets,
label: 'Live Animals And Their Products',
value: '\$23.7M'),
_CommodityRow(
icon: Icons.science,
label: 'Products Of The Chemical or Allied Industries',
value: '\$4.7M'),
const SizedBox(height: 16),
],
);
// Add other categories here...
default:
return Center(child: Text('$category details coming soon.'));
}
}
}
Widget _DemographyItem({
required IconData icon,
required String title,
@ -543,6 +584,7 @@ Widget _DemographyItem({
],
);
}
Widget _DemographyStatItem({
required IconData icon,
required String title,
@ -581,6 +623,7 @@ Widget _DemographyStatItem({
],
);
}
Widget _GDPMetricItem({
required IconData icon,
required String title,
@ -624,6 +667,7 @@ Widget _GDPMetricItem({
],
);
}
Widget _FDIItem({
required IconData icon,
required String title,
@ -656,6 +700,7 @@ Widget _FDIItem({
],
);
}
Widget _TradeItem({
required IconData icon,
required String title,
@ -688,6 +733,7 @@ Widget _TradeItem({
],
);
}
class _BilateralTradeValueBox extends StatelessWidget {
final String label;
final String value;
@ -743,12 +789,16 @@ Widget _CommodityRow({
Expanded(
child: Text(label, style: const TextStyle(fontSize: 14)),
),
Text(value, style: const TextStyle(fontWeight: FontWeight.bold, color: Colors.teal)),
Text(
value,
style: const TextStyle(
fontWeight: FontWeight.bold, color: Colors.teal),
),
],
),
);
}
//pop-up
void showCategoryPopup(BuildContext context, String category) {
showDialog(
context: context,
@ -768,6 +818,4 @@ void showCategoryPopup(BuildContext context, String category) {
),
),
);
}
}

View File

@ -158,6 +158,7 @@ flutter:
- assets/FCSC-GIF.gif
- assets/icons/enquiry/
- assets/country-profile/
- assets/country-profile/CategoryFile/
- assets/competitiveness/
fonts: