Flutter 有没有办法将导航路线添加到颤振/省道列表中?
我不熟悉颤振/飞镖,但我尝试了几种方法将导航路线添加到指定给栅格视图的列表中。这可能不是最有效的方法,但却是我想到的第一件事。我想在卡片上加一个墨水池,让导航路线通过。除此之外,我能想到的唯一其他解决方案是创建一个在列表中迭代的OnTap函数。目前,导航列表选项给了我一个错误,即“未来对象不能分配给导航器的参数类型”,我得到这个错误是因为它是一个常量。但我尝试了其他一些方法,得到了类似的结果。我当前的配置有什么问题?是否有更好/更有效的解决方案 这是我的选择列表:Flutter 有没有办法将导航路线添加到颤振/省道列表中?,flutter,dart,Flutter,Dart,我不熟悉颤振/飞镖,但我尝试了几种方法将导航路线添加到指定给栅格视图的列表中。这可能不是最有效的方法,但却是我想到的第一件事。我想在卡片上加一个墨水池,让导航路线通过。除此之外,我能想到的唯一其他解决方案是创建一个在列表中迭代的OnTap函数。目前,导航列表选项给了我一个错误,即“未来对象不能分配给导航器的参数类型”,我得到这个错误是因为它是一个常量。但我尝试了其他一些方法,得到了类似的结果。我当前的配置有什么问题?是否有更好/更有效的解决方案 这是我的选择列表: class Choice {
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final Navigator nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: Navigator.pushNamed(context, TestConfirmation.id)),
const Choice(title: 'Seating Chart', icon: Icons.event_seat),
const Choice(title: 'Random', icon: Icons.shuffle),
const Choice(title: 'Group Maker', icon: Icons.group_add),
const Choice(title: 'Noise Monitor', icon: Icons.hearing),
const Choice(title: 'Assign Tasks', icon: Icons.assignment_ind),
const Choice(title: 'Survey', icon: Icons.rate_review),
const Choice(title: 'Permission Slips', icon: Icons.assignment),
const Choice(title: 'Lesson Plans', icon: Icons.local_library),
const Choice(title: 'Attendance', icon: Icons.schedule),
const Choice(title: 'Gradebook', icon: Icons.insert_chart)
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
//onTap: choice.navigation,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: Icon(choice.icon,
size: 90.0, color: textStyle.color)),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final String nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: timer),
const Choice(
title: 'Seating Chart', icon: Icons.event_seat, nav: seatingChart),
const Choice(title: 'Random', icon: Icons.shuffle, nav: randomPicker),
const Choice(title: 'Group Maker', icon: Icons.group_add, nav: groupMaker),
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
onTap: () {
Navigator.pushNamed(context, choice.nav);
},
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child:
Icon(choice.icon, size: 90.0, color: textStyle.color),
),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case assignTasks:
return MaterialPageRoute(builder: (_) => AssignTasks());
case attendance:
return MaterialPageRoute(builder: (_) => Attendance());
case gradeBook:
return MaterialPageRoute(builder: (_) => GradeBook());
case groupMaker:
return MaterialPageRoute(builder: (_) => GroupMaker());
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('No route defined for ${settings.name}')),
));
}
}
}
//Dynamic Routes for generating navigation
const String assignTasks = AssignTasks.id;
const String attendance = ProfileForm.id;
const String gradeBook = ClassProfile.id;
const String groupMaker = GroupMaker.id;
类选择{
常量选择({this.title,this.icon,this.nav});
最后的字符串标题;
最终的Iconda图标;
最终导航仪导航;
}
常量列表选项=常量[
常量选项(标题:“计时器”,图标:Icons.Timer,导航:Navigator.pushNamed(上下文,TestConfirmation.id)),
常量选择(标题:“座位表”,图标:图标。事件座位),
常量选择(标题:“随机”,图标:图标。随机),
常量选择(标题:“组生成器”,图标:图标。组添加),
常量选择(标题:“噪音监视器”,图标:图标。听力),
常量选项(标题:“分配任务”,图标:Icons.assignment\u ind),
常数选择(标题:“调查”,图标:图标。费率审查),
const选项(标题:“权限单”,图标:Icons.assignment),
const选项(标题:“课程计划”,图标:Icons.local_library),
常数选择(标题:“出席”,图标:图标。时间表),
常量选项(标题:“成绩册”,图标:图标。插入图表)
];
这是我的名片:
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final Navigator nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: Navigator.pushNamed(context, TestConfirmation.id)),
const Choice(title: 'Seating Chart', icon: Icons.event_seat),
const Choice(title: 'Random', icon: Icons.shuffle),
const Choice(title: 'Group Maker', icon: Icons.group_add),
const Choice(title: 'Noise Monitor', icon: Icons.hearing),
const Choice(title: 'Assign Tasks', icon: Icons.assignment_ind),
const Choice(title: 'Survey', icon: Icons.rate_review),
const Choice(title: 'Permission Slips', icon: Icons.assignment),
const Choice(title: 'Lesson Plans', icon: Icons.local_library),
const Choice(title: 'Attendance', icon: Icons.schedule),
const Choice(title: 'Gradebook', icon: Icons.insert_chart)
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
//onTap: choice.navigation,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: Icon(choice.icon,
size: 90.0, color: textStyle.color)),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final String nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: timer),
const Choice(
title: 'Seating Chart', icon: Icons.event_seat, nav: seatingChart),
const Choice(title: 'Random', icon: Icons.shuffle, nav: randomPicker),
const Choice(title: 'Group Maker', icon: Icons.group_add, nav: groupMaker),
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
onTap: () {
Navigator.pushNamed(context, choice.nav);
},
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child:
Icon(choice.icon, size: 90.0, color: textStyle.color),
),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case assignTasks:
return MaterialPageRoute(builder: (_) => AssignTasks());
case attendance:
return MaterialPageRoute(builder: (_) => Attendance());
case gradeBook:
return MaterialPageRoute(builder: (_) => GradeBook());
case groupMaker:
return MaterialPageRoute(builder: (_) => GroupMaker());
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('No route defined for ${settings.name}')),
));
}
}
}
//Dynamic Routes for generating navigation
const String assignTasks = AssignTasks.id;
const String attendance = ProfileForm.id;
const String gradeBook = ClassProfile.id;
const String groupMaker = GroupMaker.id;
class ChoiceCard扩展了无状态小部件{
const ChoiceCard({Key-Key,this.choice}):super(Key:Key);
最终选择;
@凌驾
小部件构建(构建上下文){
final TextStyle TextStyle=Theme.of(context).textTheme.subhead;
回程卡(
颜色:颜色,白色,
孩子:InkWell(
//onTap:choice.navigation,
儿童:中心(
子:列(
mainAxisSize:mainAxisSize.min,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
扩大(
子:图标(choice.Icon,
尺寸:90.0,颜色:textStyle.color),
文本(choice.title,style:textStyle),
]),
),
));
}
}
我能够通过使用GeneratorOute并构建一个单独的route类来解决这个问题。我用更小的数据集发布解决方案,以防将来有人遇到类似的问题
选择类:
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final Navigator nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: Navigator.pushNamed(context, TestConfirmation.id)),
const Choice(title: 'Seating Chart', icon: Icons.event_seat),
const Choice(title: 'Random', icon: Icons.shuffle),
const Choice(title: 'Group Maker', icon: Icons.group_add),
const Choice(title: 'Noise Monitor', icon: Icons.hearing),
const Choice(title: 'Assign Tasks', icon: Icons.assignment_ind),
const Choice(title: 'Survey', icon: Icons.rate_review),
const Choice(title: 'Permission Slips', icon: Icons.assignment),
const Choice(title: 'Lesson Plans', icon: Icons.local_library),
const Choice(title: 'Attendance', icon: Icons.schedule),
const Choice(title: 'Gradebook', icon: Icons.insert_chart)
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
//onTap: choice.navigation,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: Icon(choice.icon,
size: 90.0, color: textStyle.color)),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final String nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: timer),
const Choice(
title: 'Seating Chart', icon: Icons.event_seat, nav: seatingChart),
const Choice(title: 'Random', icon: Icons.shuffle, nav: randomPicker),
const Choice(title: 'Group Maker', icon: Icons.group_add, nav: groupMaker),
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
onTap: () {
Navigator.pushNamed(context, choice.nav);
},
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child:
Icon(choice.icon, size: 90.0, color: textStyle.color),
),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case assignTasks:
return MaterialPageRoute(builder: (_) => AssignTasks());
case attendance:
return MaterialPageRoute(builder: (_) => Attendance());
case gradeBook:
return MaterialPageRoute(builder: (_) => GradeBook());
case groupMaker:
return MaterialPageRoute(builder: (_) => GroupMaker());
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('No route defined for ${settings.name}')),
));
}
}
}
//Dynamic Routes for generating navigation
const String assignTasks = AssignTasks.id;
const String attendance = ProfileForm.id;
const String gradeBook = ClassProfile.id;
const String groupMaker = GroupMaker.id;
类选择{
常量选择({this.title,this.icon,this.nav});
最后的字符串标题;
最终的Iconda图标;
最终字符串导航;
}
常量列表选项=常量[
常量选择(标题:“计时器”,图标:Icons.Timer,导航:Timer),
常数选择(
标题:“座位图”,图标:Icons.event_座位,导航:座位图),
常量选择(标题:“随机”,图标:Icons.shuffle,导航:randomPicker),
const选项(标题:“groupMaker”,图标:Icons.Group_add,导航:groupMaker),
];
选择卡片类:
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final Navigator nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: Navigator.pushNamed(context, TestConfirmation.id)),
const Choice(title: 'Seating Chart', icon: Icons.event_seat),
const Choice(title: 'Random', icon: Icons.shuffle),
const Choice(title: 'Group Maker', icon: Icons.group_add),
const Choice(title: 'Noise Monitor', icon: Icons.hearing),
const Choice(title: 'Assign Tasks', icon: Icons.assignment_ind),
const Choice(title: 'Survey', icon: Icons.rate_review),
const Choice(title: 'Permission Slips', icon: Icons.assignment),
const Choice(title: 'Lesson Plans', icon: Icons.local_library),
const Choice(title: 'Attendance', icon: Icons.schedule),
const Choice(title: 'Gradebook', icon: Icons.insert_chart)
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
//onTap: choice.navigation,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: Icon(choice.icon,
size: 90.0, color: textStyle.color)),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final String nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: timer),
const Choice(
title: 'Seating Chart', icon: Icons.event_seat, nav: seatingChart),
const Choice(title: 'Random', icon: Icons.shuffle, nav: randomPicker),
const Choice(title: 'Group Maker', icon: Icons.group_add, nav: groupMaker),
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
onTap: () {
Navigator.pushNamed(context, choice.nav);
},
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child:
Icon(choice.icon, size: 90.0, color: textStyle.color),
),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case assignTasks:
return MaterialPageRoute(builder: (_) => AssignTasks());
case attendance:
return MaterialPageRoute(builder: (_) => Attendance());
case gradeBook:
return MaterialPageRoute(builder: (_) => GradeBook());
case groupMaker:
return MaterialPageRoute(builder: (_) => GroupMaker());
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('No route defined for ${settings.name}')),
));
}
}
}
//Dynamic Routes for generating navigation
const String assignTasks = AssignTasks.id;
const String attendance = ProfileForm.id;
const String gradeBook = ClassProfile.id;
const String groupMaker = GroupMaker.id;
class ChoiceCard扩展了无状态小部件{
const ChoiceCard({Key-Key,this.choice}):super(Key:Key);
最终选择;
@凌驾
小部件构建(构建上下文){
final TextStyle TextStyle=Theme.of(context).textTheme.subhead;
回程卡(
颜色:颜色,白色,
孩子:InkWell(
onTap:(){
Navigator.pushNamed(context,choice.nav);
},
儿童:中心(
子:列(
mainAxisSize:mainAxisSize.min,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
扩大(
儿童:
图标(choice.Icon,大小:90.0,颜色:textStyle.color),
),
文本(choice.title,style:textStyle),
]),
),
));
}
}
路由器类别:
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final Navigator nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: Navigator.pushNamed(context, TestConfirmation.id)),
const Choice(title: 'Seating Chart', icon: Icons.event_seat),
const Choice(title: 'Random', icon: Icons.shuffle),
const Choice(title: 'Group Maker', icon: Icons.group_add),
const Choice(title: 'Noise Monitor', icon: Icons.hearing),
const Choice(title: 'Assign Tasks', icon: Icons.assignment_ind),
const Choice(title: 'Survey', icon: Icons.rate_review),
const Choice(title: 'Permission Slips', icon: Icons.assignment),
const Choice(title: 'Lesson Plans', icon: Icons.local_library),
const Choice(title: 'Attendance', icon: Icons.schedule),
const Choice(title: 'Gradebook', icon: Icons.insert_chart)
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
//onTap: choice.navigation,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: Icon(choice.icon,
size: 90.0, color: textStyle.color)),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final String nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: timer),
const Choice(
title: 'Seating Chart', icon: Icons.event_seat, nav: seatingChart),
const Choice(title: 'Random', icon: Icons.shuffle, nav: randomPicker),
const Choice(title: 'Group Maker', icon: Icons.group_add, nav: groupMaker),
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
onTap: () {
Navigator.pushNamed(context, choice.nav);
},
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child:
Icon(choice.icon, size: 90.0, color: textStyle.color),
),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case assignTasks:
return MaterialPageRoute(builder: (_) => AssignTasks());
case attendance:
return MaterialPageRoute(builder: (_) => Attendance());
case gradeBook:
return MaterialPageRoute(builder: (_) => GradeBook());
case groupMaker:
return MaterialPageRoute(builder: (_) => GroupMaker());
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('No route defined for ${settings.name}')),
));
}
}
}
//Dynamic Routes for generating navigation
const String assignTasks = AssignTasks.id;
const String attendance = ProfileForm.id;
const String gradeBook = ClassProfile.id;
const String groupMaker = GroupMaker.id;
类路由器{
静态路由生成器输出(路由设置){
开关(设置.名称){
案例任务:
返回MaterialPackageRoute(生成器:()=>AssignTasks());
个案出席人数:
返回MaterialPage路线(生成器:()=>Attention());
个案成绩册:
返回MaterialPage路线(生成器:()=>成绩册());
案例组制作人:
返回MaterialPackageRoute(生成器:()=>GroupMaker());
违约:
返回物料路线(
建造商:()=>脚手架(
正文:中(
子项:Text('No route defined for${settings.name}'),
));
}
}
}
//生成导航的动态路线
常量字符串assignTasks=assignTasks.id;
const String attention=ProfileForm.id;
常量字符串成绩册=ClassProfile.id;
常量字符串groupMaker=groupMaker.id;
我能够通过使用GeneratorOute并构建一个单独的route类来解决这个问题。我用更小的数据集发布解决方案,以防将来有人遇到类似的问题
选择类:
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final Navigator nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: Navigator.pushNamed(context, TestConfirmation.id)),
const Choice(title: 'Seating Chart', icon: Icons.event_seat),
const Choice(title: 'Random', icon: Icons.shuffle),
const Choice(title: 'Group Maker', icon: Icons.group_add),
const Choice(title: 'Noise Monitor', icon: Icons.hearing),
const Choice(title: 'Assign Tasks', icon: Icons.assignment_ind),
const Choice(title: 'Survey', icon: Icons.rate_review),
const Choice(title: 'Permission Slips', icon: Icons.assignment),
const Choice(title: 'Lesson Plans', icon: Icons.local_library),
const Choice(title: 'Attendance', icon: Icons.schedule),
const Choice(title: 'Gradebook', icon: Icons.insert_chart)
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
//onTap: choice.navigation,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: Icon(choice.icon,
size: 90.0, color: textStyle.color)),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final String nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: timer),
const Choice(
title: 'Seating Chart', icon: Icons.event_seat, nav: seatingChart),
const Choice(title: 'Random', icon: Icons.shuffle, nav: randomPicker),
const Choice(title: 'Group Maker', icon: Icons.group_add, nav: groupMaker),
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
onTap: () {
Navigator.pushNamed(context, choice.nav);
},
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child:
Icon(choice.icon, size: 90.0, color: textStyle.color),
),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case assignTasks:
return MaterialPageRoute(builder: (_) => AssignTasks());
case attendance:
return MaterialPageRoute(builder: (_) => Attendance());
case gradeBook:
return MaterialPageRoute(builder: (_) => GradeBook());
case groupMaker:
return MaterialPageRoute(builder: (_) => GroupMaker());
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('No route defined for ${settings.name}')),
));
}
}
}
//Dynamic Routes for generating navigation
const String assignTasks = AssignTasks.id;
const String attendance = ProfileForm.id;
const String gradeBook = ClassProfile.id;
const String groupMaker = GroupMaker.id;
类选择{
常量选择({this.title,this.icon,this.nav});
最后的字符串标题;
最终的Iconda图标;
最终字符串导航;
}
常量列表选项=常量[
常量选择(标题:“计时器”,图标:Icons.Timer,导航:Timer),
常数选择(
标题:“座位图”,图标:Icons.event_座位,导航:座位图),
常量选择(标题:“随机”,图标:Icons.shuffle,导航:randomPicker),
const选项(标题:“groupMaker”,图标:Icons.Group_add,导航:groupMaker),
];
选择卡片类:
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final Navigator nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: Navigator.pushNamed(context, TestConfirmation.id)),
const Choice(title: 'Seating Chart', icon: Icons.event_seat),
const Choice(title: 'Random', icon: Icons.shuffle),
const Choice(title: 'Group Maker', icon: Icons.group_add),
const Choice(title: 'Noise Monitor', icon: Icons.hearing),
const Choice(title: 'Assign Tasks', icon: Icons.assignment_ind),
const Choice(title: 'Survey', icon: Icons.rate_review),
const Choice(title: 'Permission Slips', icon: Icons.assignment),
const Choice(title: 'Lesson Plans', icon: Icons.local_library),
const Choice(title: 'Attendance', icon: Icons.schedule),
const Choice(title: 'Gradebook', icon: Icons.insert_chart)
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
//onTap: choice.navigation,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: Icon(choice.icon,
size: 90.0, color: textStyle.color)),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Choice {
const Choice({this.title, this.icon, this.nav});
final String title;
final IconData icon;
final String nav;
}
const List<Choice> choices = const <Choice>[
const Choice(title: 'Timer', icon: Icons.timer, nav: timer),
const Choice(
title: 'Seating Chart', icon: Icons.event_seat, nav: seatingChart),
const Choice(title: 'Random', icon: Icons.shuffle, nav: randomPicker),
const Choice(title: 'Group Maker', icon: Icons.group_add, nav: groupMaker),
];
class ChoiceCard extends StatelessWidget {
const ChoiceCard({Key key, this.choice}) : super(key: key);
final Choice choice;
@override
Widget build(BuildContext context) {
final TextStyle textStyle = Theme.of(context).textTheme.subhead;
return Card(
color: Colors.white,
child: InkWell(
onTap: () {
Navigator.pushNamed(context, choice.nav);
},
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child:
Icon(choice.icon, size: 90.0, color: textStyle.color),
),
Text(choice.title, style: textStyle),
]),
),
));
}
}
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case assignTasks:
return MaterialPageRoute(builder: (_) => AssignTasks());
case attendance:
return MaterialPageRoute(builder: (_) => Attendance());
case gradeBook:
return MaterialPageRoute(builder: (_) => GradeBook());
case groupMaker:
return MaterialPageRoute(builder: (_) => GroupMaker());
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('No route defined for ${settings.name}')),
));
}
}
}
//Dynamic Routes for generating navigation
const String assignTasks = AssignTasks.id;
const String attendance = ProfileForm.id;
const String gradeBook = ClassProfile.id;
const String groupMaker = GroupMaker.id;
类选择卡扩展