我正在使用Flutter开发应用程序,我必须显示第一页并创建子页。 我的问题是,当您单击某个项目时,我不知道如何显示第二页。示例:我创建了一个由8个框组成的网格,每个框在单击时必须显示一个唯一的页面。即第1项返回第1页,第2项返回第2页,第3项返回第3页...等等。
这是第一页的记录
答案 0 :(得分:1)
您可以通过以下代码示例实现此目的。使用导航器,您可以转到下一页并显示它。
class NavigatorPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: GridView.builder(
itemCount: 4,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
itemBuilder: (BuildContext context, int index) {
return GestureDetector(
onTap: () => nextPage(context, index),
child: Card(
...
),
);
},
),
),
);
}
void nextPage(BuildContext context, int index) {
if (index == 0) {
Navigator.push(context, MaterialPageRoute(builder: (context) => Page1()));
} else if (index == 1) {
Navigator.push(context, MaterialPageRoute(builder: (context) => Page2()));
}
...
}
}
答案 1 :(得分:0)
您需要的是Navigator
对象。在颤动中,它具有一个初始屏幕,然后在屏幕上方堆叠,从而在屏幕之间导航用户。 This is a good tutorial on the basics。
通常,良好的做法是使用命名路由(tutorial here),但无需使用命名路由即可使用导航器。在您的示例中,您可以将以下各项放在每个项目的onPressed
自变量中:
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) {
return PageTwo()
);
},
);
答案 2 :(得分:0)
在第一个屏幕上,编写此代码。
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) {
return SecondScreen()
);
},
);
您必须导入“第一屏”飞镖文件中的第二屏。