我正在尝试使用Navigator.push导航到Flutter中的新页面。这是到目前为止我得到的:
GestureDetector(
onTap: () {
print('Test');
// Navigator.push(context,
// MaterialPageRoute(builder: (context) => ResultsPage()));
},
child: Container(
color: Color(0xFFff474b),
child: Center(
child: Text('CALCULATE', style: kButtonText),
),
padding: EdgeInsets.only(bottom: 20.0),
width: double.infinity,
height: 80.0,
margin: EdgeInsets.only(top: 10.0),
),
),
由于我一直在使用打印语句测试onTap,因此我要实现的代码已被注释掉。
有趣的是,print语句运行了,但是由于某种原因,我无法使Navigator.push正常工作。它只会导航到黑屏。
对于上下文,这是“结果”页面-只是带有应用程序栏的简单支架。但是应用栏不会显示在下一页:
class ResultsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Calculated Distance'),
),
);
}
}
答案 0 :(得分:2)
该错误可能是由于脚手架中存在两个或多个浮动操作按钮引起的。默认情况下,Floating Action 按钮有一个 Hero 属性处于活动状态。通过 heroTag: null,. 使其停用。
例如,
FloatingActionButton(
heroTag: null,
child: Icon(),
onPressed: () {},
),
答案 1 :(得分:0)
事实证明,问题在于我在页面上有两个FloatingActionButtons,所以它与Navigator路线混为一谈。
我发现这篇中型文章是该解决方案的不错指南:https://medium.com/@kaendagger/test-cef30fcb5c54
答案 2 :(得分:0)
将ResultsPage()添加到您的路线中,将其添加到您的MaterialApp(
MaterialApp(
initialRoute: '/',
routes: {
'/': (_) => HOME(),
'/home': (_) => ResultsPage(),
}, )