Showing
3 changed files
with
18 additions
and
6 deletions
| @@ -21,7 +21,7 @@ class HomeView extends GetView<HomeController> { | @@ -21,7 +21,7 @@ class HomeView extends GetView<HomeController> { | ||
| 21 | return Scaffold( | 21 | return Scaffold( | 
| 22 | body: GetRouterOutlet( | 22 | body: GetRouterOutlet( | 
| 23 | initialRoute: Routes.DASHBOARD, | 23 | initialRoute: Routes.DASHBOARD, | 
| 24 | - anchorRoute: Routes.HOME, | 24 | + // anchorRoute: Routes.HOME, | 
| 25 | key: Get.nestedKey(Routes.HOME), | 25 | key: Get.nestedKey(Routes.HOME), | 
| 26 | ), | 26 | ), | 
| 27 | bottomNavigationBar: BottomNavigationBar( | 27 | bottomNavigationBar: BottomNavigationBar( | 
| @@ -19,7 +19,7 @@ class RootView extends GetView<RootController> { | @@ -19,7 +19,7 @@ class RootView extends GetView<RootController> { | ||
| 19 | ), | 19 | ), | 
| 20 | body: GetRouterOutlet( | 20 | body: GetRouterOutlet( | 
| 21 | initialRoute: Routes.HOME, | 21 | initialRoute: Routes.HOME, | 
| 22 | - anchorRoute: '/', | 22 | + // anchorRoute: '/', | 
| 23 | filterPages: (afterAnchor) { | 23 | filterPages: (afterAnchor) { | 
| 24 | return afterAnchor.take(1); | 24 | return afterAnchor.take(1); | 
| 25 | }, | 25 | }, | 
| @@ -83,8 +83,18 @@ class GetRouterOutlet extends RouterOutlet<GetDelegate, GetNavConfig> { | @@ -83,8 +83,18 @@ class GetRouterOutlet extends RouterOutlet<GetDelegate, GetNavConfig> { | ||
| 83 | GlobalKey<NavigatorState>? key, | 83 | GlobalKey<NavigatorState>? key, | 
| 84 | }) : this.pickPages( | 84 | }) : this.pickPages( | 
| 85 | pickPages: (config) { | 85 | pickPages: (config) { | 
| 86 | - var ret = config.currentTreeBranch | ||
| 87 | - .pickAfterRoute(anchorRoute ?? initialRoute); | 86 | + Iterable<GetPage<dynamic>> ret; | 
| 87 | + if (anchorRoute == null) { | ||
| 88 | + //anchorRoute = initialRoute minus last segment | ||
| 89 | + final parsedUri = Uri.parse(initialRoute); | ||
| 90 | + final replacedUri = parsedUri.replace( | ||
| 91 | + pathSegments: parsedUri.pathSegments.take( | ||
| 92 | + parsedUri.pathSegments.length - 1, | ||
| 93 | + ), | ||
| 94 | + ); | ||
| 95 | + anchorRoute = '/$replacedUri'; | ||
| 96 | + } | ||
| 97 | + ret = config.currentTreeBranch.pickAfterRoute(anchorRoute!); | ||
| 88 | if (filterPages != null) { | 98 | if (filterPages != null) { | 
| 89 | ret = filterPages(ret); | 99 | ret = filterPages(ret); | 
| 90 | } | 100 | } | 
| @@ -145,10 +155,12 @@ class GetRouterOutlet extends RouterOutlet<GetDelegate, GetNavConfig> { | @@ -145,10 +155,12 @@ class GetRouterOutlet extends RouterOutlet<GetDelegate, GetNavConfig> { | ||
| 145 | 155 | ||
| 146 | extension PagesListExt on List<GetPage> { | 156 | extension PagesListExt on List<GetPage> { | 
| 147 | Iterable<GetPage> pickAtRoute(String route) { | 157 | Iterable<GetPage> pickAtRoute(String route) { | 
| 148 | - return skipWhile((value) => value.name != route).toList(); | 158 | + return skipWhile((value) { | 
| 159 | + return value.name != route; | ||
| 160 | + }); | ||
| 149 | } | 161 | } | 
| 150 | 162 | ||
| 151 | Iterable<GetPage> pickAfterRoute(String route) { | 163 | Iterable<GetPage> pickAfterRoute(String route) { | 
| 152 | - return skipWhile((value) => value.name != route).skip(1).toList(); | 164 | + return pickAtRoute(route).skip(1); | 
| 153 | } | 165 | } | 
| 154 | } | 166 | } | 
- 
Please register or login to post a comment