在Flutter中,可以使用“for loop”生成小部件,并通过导航到另一个页面来实现页面之间的跳转。下面是一个示例代码:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomePage(),
routes: {
'/secondPage': (context) => SecondPage(),
},
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home Page'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
for (int i = 1; i <= 5; i++)
ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/secondPage', arguments: i);
},
child: Text('Button $i'),
),
],
),
),
);
}
}
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final int buttonNumber = ModalRoute.of(context).settings.arguments as int;
return Scaffold(
appBar: AppBar(
title: Text('Second Page'),
),
body: Center(
child: Text('You pressed Button $buttonNumber'),
),
);
}
}
在上面的代码中,我们首先定义了一个HomePage
作为应用的主页,其中使用了一个Column
小部件来展示多个按钮。通过使用for loop
,我们生成了5个带有不同文本的ElevatedButton
小部件,并为每个按钮设置了onPressed
回调函数。当按钮被点击时,我们使用Navigator.pushNamed
方法导航到名为'/secondPage'
的页面,并将按钮的编号作为参数传递给该页面。
接下来,我们定义了SecondPage
作为第二个页面,其中使用ModalRoute.of(context).settings.arguments
获取了从上一个页面传递过来的按钮编号,并在页面中展示出来。
最后,在MyApp
中,我们使用routes
属性将'/secondPage'
与SecondPage
小部件关联起来,以便在导航时能够正确地跳转到该页面。
这样,当我们在主页点击任意一个按钮时,就会导航到第二个页面,并显示出对应按钮的编号。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云