gpt4 book ai didi

Flutter 使用带路由的抽屉并检查当前事件路由以在抽屉中突出显示?

转载 作者:IT王子 更新时间:2023-10-29 07:06:56 25 4
gpt4 key购买 nike

需要 Flutter 抽屉示例,使用当前路由的路由在菜单中突出显示,并从任何其他路由返回主页路由,应用仅从主页退出

最佳答案

这是我想出的:

import 'package:myapp/blocs/provider.dart';
import 'package:myapp/routes.dart';
import 'package:flutter/material.dart';

class DrawerItemList extends StatelessWidget {
String getCurrentRouteName(context) {
String currentRouteName;

Navigator.popUntil(context, (route) {
currentRouteName = route.settings.name;
return true;
});

return currentRouteName;
}

@override
Widget build(BuildContext context) {
final bloc = Provider.of(context);
String currentRoute = getCurrentRouteName(context);

return Column(
children: <Widget>[
AppBar(
automaticallyImplyLeading: false,
title: Text('MyAppTitle'),
actions: <Widget>[
IconButton(
icon: Icon(Icons.exit_to_app),
tooltip: 'Log Out',
onPressed: () {
bloc.logOut();
Navigator.pushReplacementNamed(
context,
AppRoutes.home,
);
},
),
],
),
ListTile(
leading: Icon(Icons.home),
title: Text('Home'),
selected: currentRoute == AppRoutes.home,
onTap: () {
if (currentRoute == AppRoutes.home) return;

Navigator.pushReplacementNamed(
context,
AppRoutes.home,
);
},
),
ListTile(
leading: Icon(Icons.list),
title: Text('Records'),
selected: currentRoute == AppRoutes.records,
onTap: () {
if (currentRoute == AppRoutes.records) return;

Navigator.pushReplacementNamed(
context,
AppRoutes.records,
);
},
),
ListTile(
title: Text('Planning'),
leading: Icon(Icons.graphic_eq),
selected: currentRoute == AppRoutes.planning,
onTap: () {
if (currentRoute == AppRoutes.planning) return;

Navigator.pushReplacementNamed(
context,
AppRoutes.planning,
);
},
),
],
);
}
}

关于Flutter 使用带路由的抽屉并检查当前事件路由以在抽屉中突出显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49154277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com