我试图在单击按钮时获取要导航到的屏幕名称(在自定义类中)。
class myButton extends StatelessWidget {
String button_txt = '';
String nextPage = '';
double height_ = 39;
myButton(button_txt) {
this.button_txt = button_txt;
this.nextPage = nextPage;
}
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
Navigator.pushReplacement(context, '/$nextPage');
},
答案 0 :(得分:1)
如果你想使用命名路由,你应该像这样使用它:
Navigator.pushReplacementNamed(context, 'nextPage');
但如果您不想使用命名路由,则有不同的导航方式:
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) {
return routewidget;
},
),
);
答案 1 :(得分:1)
有两种方法可以做到这一点:
Navigator.pushNamedReplacement(context, '/$nextPage')
Navigator.pushReplacement(context, route);
与路由参数一起使用如果你想使用命名路由,那么使用
Navigator.pushNamedReplacement(context, '/name/of/route)
。
如果它仍然不起作用,那么您可能没有set up navigation properly。
如果你想使用非命名路由,那么方法会有所不同:
Navigator.pushReplacement(
context,
MaterialPageRoute( // Material page route makes it
// slide from the bottom to the top
//
// If you want it to slide from the right to the left, use
// `CupertinoPageRoute()` from the cupertino library.
//
// If you want something else, then create your own route
// https://flutter.dev/docs/cookbook/animation/page-route-animation
builder: (context) {
return NextPageWidget();
},
),
);