Flutter:具有多个命名路由的 flutter_page_transition 不起作用
Flutter: flutter_page_transition with multiple named routes doesn't work
我需要在具有命名路由的屏幕之间进行转换。但是当我使用超过 1 条路线时,它会使用默认转换而不是 flutter_page_transitions 库中的转换。
这行不通:
initialRoute: '/first',
routes: {
'/first': (context) => First(),
'/second': (context) => Second(),
'/third': (context) => Third(),
},
onGenerateRoute: (settings) {
switch (settings.name) {
case '/first': {
return PageTransition(
child: First(), type: PageTransitionType.fade);
}
break;
case '/second': {
return PageTransition(
child: Second(), type: PageTransitionType.fade);
}
break;
case '/third': {
return PageTransition(
child: Third(), type: PageTransitionType.fade);
}
break;
default: {
return null;
}
}
},
这个有效
onGenerateRoute: (settings) {
switch (settings.name) {
case '/first': {
return PageTransition(
child: First(), type: PageTransitionType.fade);
}
break;
default: {
return null;
}
}
},
谢谢大家!
解决方法:我把routes
注释掉了
home: First();
//initialRoute: '/first',
/*routes: {
'/first': (context) => First(),
'/second': (context) => Second(),
'/third': (context) => Third(),
},*/
onGenerateRoute: (settings) {
switch (settings.name) {
case '/first': {
return PageTransition(
child: First(), type: PageTransitionType.fade);
}
break;
case '/second': {
return PageTransition(
child: Second(), type: PageTransitionType.fade);
}
break;
case '/third': {
return PageTransition(
child: Third(), type: PageTransitionType.fade);
}
break;
default: {
return null;
}
}
},
你不应该在两条路线中有相同的路线:和onGenerateRoute。它们是相互排斥的。因此,请选择要处理路线的代码块。
OnGenerateRoute 取路由中没有指定的路由:
我需要在具有命名路由的屏幕之间进行转换。但是当我使用超过 1 条路线时,它会使用默认转换而不是 flutter_page_transitions 库中的转换。
这行不通:
initialRoute: '/first',
routes: {
'/first': (context) => First(),
'/second': (context) => Second(),
'/third': (context) => Third(),
},
onGenerateRoute: (settings) {
switch (settings.name) {
case '/first': {
return PageTransition(
child: First(), type: PageTransitionType.fade);
}
break;
case '/second': {
return PageTransition(
child: Second(), type: PageTransitionType.fade);
}
break;
case '/third': {
return PageTransition(
child: Third(), type: PageTransitionType.fade);
}
break;
default: {
return null;
}
}
},
这个有效
onGenerateRoute: (settings) {
switch (settings.name) {
case '/first': {
return PageTransition(
child: First(), type: PageTransitionType.fade);
}
break;
default: {
return null;
}
}
},
谢谢大家! 解决方法:我把routes
注释掉了 home: First();
//initialRoute: '/first',
/*routes: {
'/first': (context) => First(),
'/second': (context) => Second(),
'/third': (context) => Third(),
},*/
onGenerateRoute: (settings) {
switch (settings.name) {
case '/first': {
return PageTransition(
child: First(), type: PageTransitionType.fade);
}
break;
case '/second': {
return PageTransition(
child: Second(), type: PageTransitionType.fade);
}
break;
case '/third': {
return PageTransition(
child: Third(), type: PageTransitionType.fade);
}
break;
default: {
return null;
}
}
},
你不应该在两条路线中有相同的路线:和onGenerateRoute。它们是相互排斥的。因此,请选择要处理路线的代码块。
OnGenerateRoute 取路由中没有指定的路由: