【发布时间】:2020-05-09 13:44:09
【问题描述】:
import 'package:flutter/material.dart';
import 'fruits_listing_card.dart';
import 'fruits_page.dart';
Map<String, Widget> fruits = {
"banana": FruitsListingCards(
fruitBGColor: 0xFFF8A8B5,
fruitImagePath: 'images/fruits/banana.png',
fruitName: 'Banana',
fruitPrice: 'Rs. 105',
fruitShortDescription: 'Ripe & Tasty',
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => FruitsPage()),);
},
),
}
// 第二个文件
import 'package:flutter/material.dart';
class FruitsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Container(),
),
);
}
}
这两个代码都在不同的文件中。 FruitsListingCards 是一个具有手势检测功能的小部件。 onTap 是一个带函数的参数。 我在主文件中使用 FruitsListingCards,每当用户点击它时,都应该转到 FruitsPage 屏幕。但错误是不允许我这样做。任何具有适当解释的解决方案都会对我有很大帮助。
编辑: 为了正确理解代码,请查看我的 repo: https://github.com/RaghavTheGreat1/fruits_delivery/tree/master/lib
【问题讨论】:
-
你能为我们提供这些类的完整代码吗?能够看到这些类如何协同工作对我们来说很重要。请将您的课程拉入一个文件并在此处发布。
-
@SupposedlySam github.com/RaghavTheGreat1/fruits_delivery/tree/master/lib
-
上面列出的代码目前不在你的仓库中。
-
我相信您可能只需要
BuildContext context作为onTap函数的参数。然后,在你调用onTap的地方,你可以在那里传递上下文。
标签: flutter dart screen navigator