[英]How to create full screen dialog in flutter when I am using root names to Navigate?
This is the sample code using rootName but here I am not able to use MaterialPageRoute to get the fullScreenDialog property. 这是使用rootName的示例代码,但是在这里,我无法使用MaterialPageRoute来获取fullScreenDialog属性。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: '/',
routes: {
'/': (context) => MyHomePage(),
'/under-development': (context) => UnderDevelopment(),
'/profile1': (context) => Profile1()
},
title: appName,
debugShowCheckedModeBanner: false,
theme: ThemeData(
primaryColor: primaryColor,
accentColor: secondaryColor,
fontFamily: 'Poppins'),
);
}
}
Navigator 航海家
onTap: () {
Navigator.pushNamed(context, '/profile1');
},
You can use something like this inside Material App. 您可以在Material App中使用类似的方法。 I hope it helps. 希望对您有所帮助。
onGenerateRoute: (RouteSettings settings) {
List<String> pathElements = settings.name.split("/");
if (pathElements[0] != "") return null;
switch (pathElements[1]) {
case "home":
String userID = pathElements[2];
return MaterialPageRoute(
builder: (context) => ReportsPage(
userID: userID,
),fullscreenDialog: true);
}
},
new MaterialApp(
title: 'Named Routes Demo',
theme: ThemeData(
primarySwatch: Colors.green),
initialRoute: '/',
onGenerateRoute: (RouteSettings settings) {
List<String> pathElements = settings.name.split("/");
if (pathElements[0] != "") return null;
switch (pathElements[1]) {
case "":
return MaterialPageRoute(
builder: (context) => FirstScreen());
case "second":
return MaterialPageRoute(
builder: (context) => SecondScreen(), fullscreenDialog: true);
case "third":
return MaterialPageRoute(
builder: (context) => ThirdScreen(), fullscreenDialog: true);
}
},
)
Navigator Button 导航按钮
onTap: () {
Navigator.pushNamed(context, '/second');
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.