From e492c4fa67f8cd49bdfa43a7646bdf0387999c0a Mon Sep 17 00:00:00 2001 From: Doniyor Date: Wed, 5 Jan 2022 12:40:07 +0500 Subject: [PATCH] migrated example to nullsafety and fixed height issue in PersistentTabView.custom constructor --- example/lib/custom-widget-tabs.widget.dart | 23 ++++++------- example/lib/main.dart | 38 +++++++++++----------- example/lib/modal-screen.dart | 2 +- example/lib/screens.dart | 18 +++++----- example/pubspec.lock | 18 +++++----- example/pubspec.yaml | 2 +- 6 files changed, 51 insertions(+), 50 deletions(-) diff --git a/example/lib/custom-widget-tabs.widget.dart b/example/lib/custom-widget-tabs.widget.dart index 120d9bd0..830e0264 100644 --- a/example/lib/custom-widget-tabs.widget.dart +++ b/example/lib/custom-widget-tabs.widget.dart @@ -5,16 +5,16 @@ import 'main.dart'; import 'screens.dart'; class CustomWidgetExample extends StatefulWidget { - final BuildContext menuScreenContext; - CustomWidgetExample({Key key, this.menuScreenContext}) : super(key: key); + final BuildContext? menuScreenContext; + CustomWidgetExample({Key? key, this.menuScreenContext}) : super(key: key); @override _CustomWidgetExampleState createState() => _CustomWidgetExampleState(); } class _CustomWidgetExampleState extends State { - PersistentTabController _controller; - bool _hideNavBar; + PersistentTabController? _controller; + bool? _hideNavBar; @override void initState() { @@ -30,7 +30,7 @@ class _CustomWidgetExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -39,7 +39,7 @@ class _CustomWidgetExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -48,7 +48,7 @@ class _CustomWidgetExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -57,7 +57,7 @@ class _CustomWidgetExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -66,7 +66,7 @@ class _CustomWidgetExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -127,6 +127,7 @@ class _CustomWidgetExampleState extends State { controller: _controller, screens: _buildScreens(), confineInSafeArea: true, + navBarHeight: kBottomNavigationBarHeight, itemCount: 5, handleAndroidBackButtonPress: true, stateManagement: true, @@ -140,10 +141,10 @@ class _CustomWidgetExampleState extends State { items: _navBarsItems(), onItemSelected: (index) { setState(() { - _controller.index = index; // THIS IS CRITICAL!! Don't miss it! + _controller!.index = index; // THIS IS CRITICAL!! Don't miss it! }); }, - selectedIndex: _controller.index, + selectedIndex: _controller!.index, ), ), ); diff --git a/example/lib/main.dart b/example/lib/main.dart index 1a468d05..a78232dc 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -7,7 +7,7 @@ import 'screens.dart'; void main() => runApp(MyApp()); -BuildContext testContext; +BuildContext? testContext; class MyApp extends StatelessWidget { @override @@ -30,7 +30,7 @@ class MyApp extends StatelessWidget { } class MainMenu extends StatefulWidget { - MainMenu({Key key}) : super(key: key); + MainMenu({Key? key}) : super(key: key); @override _MainMenuState createState() => _MainMenuState(); @@ -78,16 +78,16 @@ class _MainMenuState extends State { // ----------------------------------------- Provided Style ----------------------------------------- // class ProvidedStylesExample extends StatefulWidget { - final BuildContext menuScreenContext; - ProvidedStylesExample({Key key, this.menuScreenContext}) : super(key: key); + final BuildContext? menuScreenContext; + ProvidedStylesExample({Key? key, this.menuScreenContext}) : super(key: key); @override _ProvidedStylesExampleState createState() => _ProvidedStylesExampleState(); } class _ProvidedStylesExampleState extends State { - PersistentTabController _controller; - bool _hideNavBar; + PersistentTabController? _controller; + bool? _hideNavBar; @override void initState() { @@ -103,7 +103,7 @@ class _ProvidedStylesExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -112,7 +112,7 @@ class _ProvidedStylesExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -121,7 +121,7 @@ class _ProvidedStylesExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -130,7 +130,7 @@ class _ProvidedStylesExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -139,7 +139,7 @@ class _ProvidedStylesExampleState extends State { hideStatus: _hideNavBar, onScreenHideButtonPressed: () { setState(() { - _hideNavBar = !_hideNavBar; + _hideNavBar = !_hideNavBar!; }); }, ), @@ -182,7 +182,7 @@ class _ProvidedStylesExampleState extends State { }, ), onPressed: (context) { - pushDynamicScreen(context, + pushDynamicScreen(context!, screen: SampleModalScreen(), withNavBar: true); }), PersistentBottomNavBarItem( @@ -247,7 +247,7 @@ class _ProvidedStylesExampleState extends State { bottomScreenMargin: 0.0, onWillPop: (context) async { await showDialog( - context: context, + context: context!, useSafeArea: true, builder: (context) => Container( height: 50.0, @@ -290,14 +290,14 @@ class _ProvidedStylesExampleState extends State { // ----------------------------------------- Custom Style ----------------------------------------- // class CustomNavBarWidget extends StatelessWidget { - final int selectedIndex; + final int? selectedIndex; final List items; - final ValueChanged onItemSelected; + final ValueChanged? onItemSelected; CustomNavBarWidget({ - Key key, + Key? key, this.selectedIndex, - @required this.items, + required this.items, this.onItemSelected, }); @@ -330,7 +330,7 @@ class CustomNavBarWidget extends StatelessWidget { type: MaterialType.transparency, child: FittedBox( child: Text( - item.title, + item.title!, style: TextStyle( color: isSelected ? (item.activeColorSecondary == null @@ -361,7 +361,7 @@ class CustomNavBarWidget extends StatelessWidget { return Flexible( child: GestureDetector( onTap: () { - this.onItemSelected(index); + this.onItemSelected!(index); }, child: _buildItem(item, selectedIndex == index), ), diff --git a/example/lib/modal-screen.dart b/example/lib/modal-screen.dart index e4d85bb3..1cb5c6e0 100644 --- a/example/lib/modal-screen.dart +++ b/example/lib/modal-screen.dart @@ -16,7 +16,7 @@ class SampleModalScreen extends ModalRoute { Color get barrierColor => Colors.black.withOpacity(0.5); @override - String get barrierLabel => null; + String? get barrierLabel => null; @override bool get maintainState => true; diff --git a/example/lib/screens.dart b/example/lib/screens.dart index ab2f6251..7b2d8e08 100644 --- a/example/lib/screens.dart +++ b/example/lib/screens.dart @@ -4,11 +4,11 @@ import 'package:persistent_bottom_nav_bar/persistent-tab-view.dart'; import 'modal-screen.dart'; class MainScreen extends StatelessWidget { - final BuildContext menuScreenContext; - final Function onScreenHideButtonPressed; - final bool hideStatus; + final BuildContext? menuScreenContext; + final Function? onScreenHideButtonPressed; + final bool? hideStatus; const MainScreen( - {Key key, + {Key? key, this.menuScreenContext, this.onScreenHideButtonPressed, this.hideStatus = false}) @@ -117,10 +117,10 @@ class MainScreen extends StatelessWidget { Center( child: ElevatedButton( onPressed: () { - this.onScreenHideButtonPressed(); + this.onScreenHideButtonPressed!(); }, child: Text( - this.hideStatus + this.hideStatus! ? "Unhide Navigation Bar" : "Hide Navigation Bar", style: TextStyle(color: Colors.white), @@ -130,7 +130,7 @@ class MainScreen extends StatelessWidget { Center( child: ElevatedButton( onPressed: () { - Navigator.of(this.menuScreenContext).pop(); + Navigator.of(this.menuScreenContext!).pop(); }, child: Text( "<- Main Menu", @@ -150,7 +150,7 @@ class MainScreen extends StatelessWidget { } class MainScreen2 extends StatelessWidget { - const MainScreen2({Key key}) : super(key: key); + const MainScreen2({Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -188,7 +188,7 @@ class MainScreen2 extends StatelessWidget { } class MainScreen3 extends StatelessWidget { - const MainScreen3({Key key}) : super(key: key); + const MainScreen3({Key? key}) : super(key: key); @override Widget build(BuildContext context) { diff --git a/example/pubspec.lock b/example/pubspec.lock index 9e9ce622..ea6f86c1 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.5.0" + version: "2.8.2" boolean_selector: dependency: transitive description: @@ -21,14 +21,14 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" charcode: dependency: transitive description: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.1" clock: dependency: transitive description: @@ -66,14 +66,14 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.11" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.7.0" path: dependency: transitive description: @@ -99,7 +99,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.1" stack_trace: dependency: transitive description: @@ -134,7 +134,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.19" + version: "0.4.3" typed_data: dependency: transitive description: @@ -148,6 +148,6 @@ packages: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.14.0 <3.0.0" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index f423c23c..3d35bf4b 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -4,7 +4,7 @@ description: An example project for persistent_bottom_nav_bar version: 1.0.0 environment: - sdk: ">=2.1.0 <3.0.0" + sdk: '>=2.12.0 <3.0.0' dependencies: flutter: