Skip to content
Snippets Groups Projects
Commit 1ce97831 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Use "curved navigation bar"

parent 763b8858
No related branches found
No related tags found
1 merge request!59Resolve "Use curved navigation bar"
Pipeline #5538 passed
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=1.0.51
app.versionCode=52
app.versionName=1.0.52
app.versionCode=53
import 'package:curved_navigation_bar/curved_navigation_bar.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_swipe/flutter_swipe.dart';
import 'package:random/config/menu.dart';
import 'package:random/cubit/bottom_nav_cubit.dart';
import 'package:random/ui/widgets/app_bar.dart';
import 'package:random/ui/widgets/bottom_nav_bar.dart';
class SkeletonScreen extends StatefulWidget {
const SkeletonScreen({super.key});
......@@ -20,25 +19,22 @@ class _SkeletonScreenState extends State<SkeletonScreen> {
return Scaffold(
extendBodyBehindAppBar: false,
appBar: const StandardAppBar(),
body: Swiper(
itemCount: Menu.itemsCount,
itemBuilder: (BuildContext context, int index) {
return Menu.getPageWidget(index);
body: BlocBuilder<BottomNavCubit, int>(
builder: (context, pageIndex) {
return Menu.getPageWidget(pageIndex);
},
pagination: SwiperPagination(
builder: SwiperCustomPagination(
builder: (BuildContext context, SwiperPluginConfig config) {
return BottomNavBar(swipeController: config.controller);
},
),
),
onIndexChanged: (newPageIndex) {
),
backgroundColor: Theme.of(context).colorScheme.background,
bottomNavigationBar: CurvedNavigationBar(
color: Theme.of(context).colorScheme.onBackground,
backgroundColor: Theme.of(context).colorScheme.background,
animationDuration: const Duration(milliseconds: 200),
height: 50,
items: Menu.items.map((MenuItem item) => item.icon).toList(),
onTap: (newPageIndex) {
BlocProvider.of<BottomNavCubit>(context).updateIndex(newPageIndex);
},
outer: true,
loop: false,
),
backgroundColor: Theme.of(context).colorScheme.background,
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_swipe/flutter_swipe.dart';
import 'package:random/config/menu.dart';
import 'package:random/cubit/bottom_nav_cubit.dart';
class BottomNavBar extends StatelessWidget {
const BottomNavBar({super.key, required this.swipeController});
final SwiperController swipeController;
@override
Widget build(BuildContext context) {
return Card(
margin: const EdgeInsets.only(
top: 1,
right: 0,
left: 0,
),
elevation: 4,
shadowColor: Theme.of(context).colorScheme.shadow,
color: Theme.of(context).colorScheme.surfaceVariant,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16),
),
),
child: BlocBuilder<BottomNavCubit, int>(
builder: (BuildContext context, int state) {
return BottomNavigationBar(
currentIndex: state,
onTap: (int index) {
context.read<BottomNavCubit>().updateIndex(index);
swipeController.move(index);
},
type: BottomNavigationBarType.fixed,
elevation: 0,
backgroundColor: Colors.transparent,
selectedItemColor: Theme.of(context).colorScheme.primary,
unselectedItemColor: Theme.of(context).textTheme.bodySmall!.color,
items: Menu.getMenuItems(),
);
},
),
);
}
}
......@@ -21,10 +21,10 @@ packages:
dependency: transitive
description:
name: bloc
sha256: f53a110e3b48dcd78136c10daa5d51512443cea5e1348c9d80a320095fa2db9e
sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
url: "https://pub.dev"
source: hosted
version: "8.1.3"
version: "8.1.4"
camera:
dependency: "direct main"
description:
......@@ -37,18 +37,18 @@ packages:
dependency: transitive
description:
name: camera_android
sha256: "351429510121d179b9aac5a2e8cb525c3cd6c39f4d709c5f72dfb21726e52371"
sha256: ae5b9a996dfb8d77b02031b67f5500873d6402f33bd6a5283e932eef08542a51
url: "https://pub.dev"
source: hosted
version: "0.10.8+16"
version: "0.10.9"
camera_avfoundation:
dependency: transitive
description:
name: camera_avfoundation
sha256: "7d0763dfcbf060f56aa254a68c103210280bee9e97bbe4fdef23e257a4f70ab9"
sha256: "5d009ae48de1c8ab621b1c4496dadb6e2a83f3223b76c6e6a4a252414105f561"
url: "https://pub.dev"
source: hosted
version: "0.9.14"
version: "0.9.15"
camera_platform_interface:
dependency: transitive
description:
......@@ -61,10 +61,10 @@ packages:
dependency: transitive
description:
name: camera_web
sha256: f18ccfb33b2a7c49a52ad5aa3f07330b7422faaecbdfd9b9fe8e51182f6ad67d
sha256: "9e9aba2fbab77ce2472924196ff8ac4dd8f9126c4f9a3096171cd1d870d6b26c"
url: "https://pub.dev"
source: hosted
version: "0.3.2+4"
version: "0.3.3"
characters:
dependency: transitive
description:
......@@ -93,10 +93,10 @@ packages:
dependency: transitive
description:
name: cross_file
sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e
sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32"
url: "https://pub.dev"
source: hosted
version: "0.3.3+8"
version: "0.3.4+1"
crypto:
dependency: transitive
description:
......@@ -105,22 +105,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.3"
curved_navigation_bar:
dependency: "direct main"
description:
name: curved_navigation_bar
sha256: ea6412d00c5d83501bbf1cf9d1ac2ff11a20fbaf910c103c95ace7de82910334
url: "https://pub.dev"
source: hosted
version: "1.0.3"
dio:
dependency: "direct main"
description:
name: dio
sha256: "49af28382aefc53562459104f64d16b9dfd1e8ef68c862d5af436cc8356ce5a8"
sha256: "0978e9a3e45305a80a7210dbeaf79d6ee8bee33f70c8e542dc654c952070217f"
url: "https://pub.dev"
source: hosted
version: "5.4.1"
version: "5.4.2+1"
easy_localization:
dependency: "direct main"
description:
name: easy_localization
sha256: "9c86754b22aaa3e74e471635b25b33729f958dd6fb83df0ad6612948a7b231af"
sha256: c145aeb6584aedc7c862ab8c737c3277788f47488bfdf9bae0fe112bd0a4789c
url: "https://pub.dev"
source: hosted
version: "3.0.4"
version: "3.0.5"
easy_logger:
dependency: transitive
description:
......@@ -162,18 +170,18 @@ packages:
dependency: "direct main"
description:
name: flutter_bloc
sha256: "87325da1ac757fcc4813e6b34ed5dd61169973871fdf181d6c2109dd6935ece1"
sha256: f0ecf6e6eb955193ca60af2d5ca39565a86b8a142452c5b24d96fb477428f4d2
url: "https://pub.dev"
source: hosted
version: "8.1.4"
version: "8.1.5"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7
sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
version: "3.0.2"
flutter_localizations:
dependency: transitive
description: flutter
......@@ -187,14 +195,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.17"
flutter_swipe:
dependency: "direct main"
description:
name: flutter_swipe
sha256: dc6541bac3a0545ce15a3fa15913f6250532062960bf6b0ad4562d02f14a8545
url: "https://pub.dev"
source: hosted
version: "1.0.1"
flutter_web_plugins:
dependency: transitive
description: flutter
......@@ -212,10 +212,10 @@ packages:
dependency: transitive
description:
name: http
sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba
sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
version: "1.2.1"
http_parser:
dependency: transitive
description:
......@@ -228,10 +228,10 @@ packages:
dependency: "direct main"
description:
name: hydrated_bloc
sha256: "00a2099680162e74b5a836b8a7f446e478520a9cae9f6032e028ad8129f4432d"
sha256: af35b357739fe41728df10bec03aad422cdc725a1e702e03af9d2a41ea05160c
url: "https://pub.dev"
source: hosted
version: "9.1.4"
version: "9.1.5"
intl:
dependency: transitive
description:
......@@ -276,10 +276,10 @@ packages:
dependency: "direct main"
description:
name: package_info_plus
sha256: "88bc797f44a94814f2213db1c9bd5badebafdfb8290ca9f78d4b9ee2a3db4d79"
sha256: cb44f49b6e690fa766f023d5b22cac6b9affe741dd792b6ac7ad4fabe0d7b097
url: "https://pub.dev"
source: hosted
version: "5.0.1"
version: "6.0.0"
package_info_plus_platform_interface:
dependency: transitive
description:
......@@ -412,10 +412,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_web
sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21"
sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a"
url: "https://pub.dev"
source: hosted
version: "2.2.2"
version: "2.3.0"
shared_preferences_windows:
dependency: transitive
description:
......@@ -497,18 +497,18 @@ packages:
dependency: transitive
description:
name: web
sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05"
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
url: "https://pub.dev"
source: hosted
version: "0.4.2"
version: "0.5.1"
win32:
dependency: transitive
description:
name: win32
sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8"
sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a"
url: "https://pub.dev"
source: hosted
version: "5.2.0"
version: "5.4.0"
xdg_directories:
dependency: transitive
description:
......@@ -518,5 +518,5 @@ packages:
source: hosted
version: "1.0.4"
sdks:
dart: ">=3.3.0-279.1.beta <4.0.0"
flutter: ">=3.16.6"
dart: ">=3.3.0 <4.0.0"
flutter: ">=3.19.0"
......@@ -3,7 +3,7 @@ description: A random application, for testing purpose only.
publish_to: 'none'
version: 1.0.51+52
version: 1.0.52+53
environment:
sdk: '^3.0.0'
......@@ -13,14 +13,14 @@ dependencies:
sdk: flutter
camera: ^0.10.5+8
curved_navigation_bar: ^1.0.3
easy_localization: ^3.0.1
equatable: ^2.0.5
flutter_bloc: ^8.1.1
path_provider: ^2.0.11
hydrated_bloc: ^9.0.0
unicons: ^2.1.1
package_info_plus: ^5.0.1
flutter_swipe: ^1.0.1
package_info_plus: ^6.0.0
dio: ^5.3.3
hive: ^2.2.3
path: ^1.9.0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment