作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
需要 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/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!