可能真的很简单,但是我试图在主页上创建另一个按钮以遵循另一条路线。
当前只有一个按钮可以将您带到路径X(又名“第一屏幕/主页”),但是我希望另一个按钮可以将您带到路径Y。请问有什么建议吗?
提前加油! (对不起,您仍然无法掌握术语)
void main() {
runApp(MaterialApp(
title: 'Named Routes Demo',
initialRoute: '/',
routes: {
'/': (context) => FirstScreen(),
'/second': (context) => SecondScreen(),
'/second/third': (context) => ThirdScreen(),
},
)
);
}
class FirstScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home Page'),
),
body: Center(
child: RaisedButton(
child: Text('Search'),
onPressed: () {
Navigator.pushNamed(context, '/second');
},
),
),
);
}
}
class SecondScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Results Page'),
),
body: Center(
child: RaisedButton(
child: Text('Click this result'),
onPressed: () {
Navigator.pushNamed(context, '/second/third');
},
),
),
);
}
}
class ThirdScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Items Page"),
),
body: Center(
child: RaisedButton(
onPressed: () {
Navigator.pop(context);
},
child: Text('This is the item!'),
),
),
);
}
}
答案 0 :(得分:0)
您可以使用onGenerateRoute参数来代替使用路由
Center(
child: Column(
children: [
RaisedButton(
child: Text('Button one text'),
onPressed: () => Navigator.pushNamed(context, '/second'),
),
RaisedButton(
child: Text('Button two text'),
onPressed: () => Navigator.pushNamed(context, '/second/third'),
),
],
),
),
您可以将此逻辑更改为使用settings.name所需的任何方式
要在首页上添加另一个按钮,对于此简单代码,您可以使用Column小部件,这是示例
def cambio= {
def respuesta = [error: 1]
SecUser user = springSecurityService.currentUser
if (params?.j_password && params?.password && params?.old_password) {
String oldPasword=params?.old_password
String newPassword = params.j_password
String newPassword2 = params.password
if (!springSecurityService.passwordEncoder.isPasswordValid(user.getPassword(), oldPasword, null)) {
respuesta.error=3
render respuesta as JSON
}else if(newPassword == newPassword2) {
user.setPassword(params.j_password)
user.save()
respuesta.error=0
render respuesta as JSON
}else
{
respuesta.error=2
render respuesta as JSON
}
}else{
render respuesta as JSON
}
}`