Settings page mockup done

Icons imported and implemented
url-works
Vladislav Peshkov 2023-12-20 17:24:18 +01:00
parent f6c77bc778
commit 65aa11af7a
9 changed files with 120 additions and 54 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

View File

@ -55,7 +55,7 @@ class _CustomBottomNavigationBarState extends State<CustomBottomNavigationBar> {
color: Colors.white, color: Colors.white,
border: Border.all(color: Colors.transparent), border: Border.all(color: Colors.transparent),
borderRadius: borderRadius:
BorderRadius.circular(40), // Adjust radius to fit your design BorderRadius.circular(35), // Adjust radius to fit your design
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.grey.withOpacity(0.5), color: Colors.grey.withOpacity(0.5),
@ -77,17 +77,19 @@ class _CustomBottomNavigationBarState extends State<CustomBottomNavigationBar> {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[ children: <Widget>[
_buildNavItem(Icons.stacked_bar_chart, 0), _buildNavItem(Image.asset('assets/icons/icon-analyze.png'), 0),
_buildNavItem(Icons.circle, 1), _buildNavItem(Image.asset('assets/icons/icon-logo.png'), 1),
_buildNavItem(Icons.settings, 2), _buildNavItem(Image.asset('assets/icons/icon-settings.png'), 2),
], ],
), ),
), ),
); );
} }
Widget _buildNavItem(IconData icon, int index) { Widget _buildNavItem(Image icon, int index) {
return Container( return Container(
height: 40,
width:40,
decoration: _selectedIndex == index decoration: _selectedIndex == index
? BoxDecoration( ? BoxDecoration(
color: Colors.lightGreen, color: Colors.lightGreen,
@ -95,7 +97,7 @@ class _CustomBottomNavigationBarState extends State<CustomBottomNavigationBar> {
) )
: null, : null,
child: IconButton( child: IconButton(
icon: Icon(icon), icon: icon,
color: _selectedIndex == index ? Colors.white : null, color: _selectedIndex == index ? Colors.white : null,
onPressed: () => _onItemTapped(index), onPressed: () => _onItemTapped(index),
splashColor: Colors.transparent, splashColor: Colors.transparent,

View File

@ -1,43 +1,99 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:moody/views/settings_page/widgets/SettingsSelectionWdiget.dart';
import '../../utils/widgets/BottomNavigationWidget.dart'; import '../../utils/widgets/BottomNavigationWidget.dart';
class SettingsPage extends StatelessWidget { class SettingsPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialApp( return Scaffold(
home: Scaffold( body: ListView(
appBar: AppBar(title: Text('Settings Example')), children: <Widget>[
body: SingleChildScrollView( Container(
child: Column( padding: EdgeInsets.symmetric(vertical: 16.0),
children: [
SettingsSection(
title: 'Account Settings',
items: [
SettingsItem(
title: 'Profile',
detail: 'View and edit profile',
trailingText: 'View',
url: 'https://example.com/profile',
), ),
SettingsItem( // Settings section
title: 'Privacy', ListTile(
detail: 'Privacy settings', title: Text('settings', style: TextStyle(fontWeight: FontWeight.bold)),
onTap: () { ),
// Handle Privacy tap ListTile(
}, title: Text('change color'),
onTap: () => {}, // Implement your logic
),
Divider(),
// Community section
ListTile(
title: Text('notifications'),
onTap: () => {}, // Implement your logic
),
Divider(),
// Community section
ListTile(
title: Text('set pin'),
onTap: () => {}, // Implement your logic
),
Divider(),
// Community section
ListTile(
title: Text('export your data'),
onTap: () => {}, // Implement your logic
),
Container(
padding: EdgeInsets.symmetric(vertical: 16.0),
),
ListTile(
title: Text('community', style: TextStyle(fontWeight: FontWeight.bold)),
),
ListTile(
title: Text('join our discord'),
trailing: Text('fulfilled'),
onTap: () => {}, // Implement your logic
),
Divider(),
//
ListTile(
title: Text('our instagram'),
trailing: Text('@get_fulfilled'),
onTap: () => {}, // Implement your logic
),
Divider(),
//
ListTile(
title: Text('share fulfilled with your loved ones'),
onTap: () => {}, // Implement your logic
),
Container(
padding: EdgeInsets.symmetric(vertical: 16.0),
),
ListTile(
title: Text('humans behind fulfilled', style: TextStyle(fontWeight: FontWeight.bold)),
),
ListTile(
title: Text('about us'),
onTap: () => {}, // Implement your logic
),
Divider(),
//
ListTile(
title: Text('support us'),
onTap: () => {}, // Implement your logic
),
Divider(),
//
ListTile(
title: Text('give feedback'),
onTap: () => {}, // Implement your logic
),
Divider(),
//
ListTile(
title: Text('imprint & privacy policy', style: TextStyle(color: Colors.grey)),
onTap: () => {}, // Implement your logic
), ),
], ],
), ),
// More sections...
],
),
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
floatingActionButton: floatingActionButton:
CustomBottomNavigationBar(initialSelectedIndex: 2), CustomBottomNavigationBar(initialSelectedIndex: 0),
),
); );
} }
} }

View File

@ -9,7 +9,7 @@ class StatisticPage extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialApp( return MaterialApp(
home: Scaffold( home: Scaffold(
appBar: AppBar(title: Text('StattisitcsSite')), appBar: AppBar(title: Text('StatisticsSite')),
body: Column( body: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [

View File

@ -37,10 +37,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.17.2" version: "1.18.0"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
@ -132,10 +132,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.1" version: "1.10.0"
path: path:
dependency: transitive dependency: transitive
description: description:
@ -169,18 +169,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.11.0" version: "1.11.1"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.2"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
@ -201,10 +201,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.0" version: "0.6.1"
url_launcher: url_launcher:
dependency: "direct main" dependency: "direct main"
description: description:
@ -281,10 +281,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: web name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.4-beta" version: "0.3.0"
sdks: sdks:
dart: ">=3.1.5 <4.0.0" dart: ">=3.2.0-194.0.dev <4.0.0"
flutter: ">=3.13.0" flutter: ">=3.13.0"

View File

@ -43,7 +43,10 @@ flutter:
uses-material-design: true uses-material-design: true
# To add assets to your application, add an assets section, like this: # To add assets to your application, add an assets section, like this:
# assets: assets:
- assets/icons/icon-analyze.png
- assets/icons/icon-logo.png
- assets/icons/icon-settings.png
# - images/a_dot_burr.jpeg # - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg # - images/a_dot_ham.jpeg

View File

@ -10,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake)
# https://github.com/flutter/flutter/issues/57146. # https://github.com/flutter/flutter/issues/57146.
set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")
# Set fallback configurations for older versions of the flutter tool.
if (NOT DEFINED FLUTTER_TARGET_PLATFORM)
set(FLUTTER_TARGET_PLATFORM "windows-x64")
endif()
# === Flutter Library === # === Flutter Library ===
set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll")
@ -92,7 +97,7 @@ add_custom_command(
COMMAND ${CMAKE_COMMAND} -E env COMMAND ${CMAKE_COMMAND} -E env
${FLUTTER_TOOL_ENVIRONMENT} ${FLUTTER_TOOL_ENVIRONMENT}
"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat"
windows-x64 $<CONFIG> ${FLUTTER_TARGET_PLATFORM} $<CONFIG>
VERBATIM VERBATIM
) )
add_custom_target(flutter_assemble DEPENDS add_custom_target(flutter_assemble DEPENDS