有没有一种方法可以从一页切换到另一页?

时间:2020-06-18 16:27:31

标签: flutter

我正在使用Flutter开发应用程序,我必须显示第一页并创建子页。 我的问题是,当您单击某个项目时,我不知道如何显示第二页。示例:我创建了一个由8个框组成的网格,每个框在单击时必须显示一个唯一的页面。即第1项返回第1页,第2项返回第2页,第3项返回第3页...等等。

这是第一页的记录

flutter

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()
    );
  },
);

您必须导入“第一屏”飞镖文件中的第二屏。