我正在flutter上开发一个Android应用程序,在那里我想通过类作为一个参数。我是一个页面,所有的食物食谱显示和数据来自数据库。当任何食谱被点击比新的屏幕将出现,用户将看到该食谱的细节现在想要的是,当普通用户点击食谱,用户将移动到正常屏幕编辑/删除选项不存在,当管理员单击屏幕时,他将移动到存在编辑/删除选项的屏幕
class RecipeCard extends StatelessWidget {
final String title;
final String rating;
final String cookTime;
final String thumbnailUrl;
const RecipeCard({
super.key,
required this.title,
required this.cookTime,
required this.rating,
required this.thumbnailUrl,
});
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () {
Navigator.push(
context,
PageRouteBuilder(
transitionDuration: const Duration(seconds: 1),
transitionsBuilder: (context, animation, animationTime, child) {
animation = CurvedAnimation(
parent: animation, curve: Curves.fastLinearToSlowEaseIn);
return ScaleTransition(
scale: animation,
alignment: Alignment.center,
child: child,
);
},
pageBuilder: (context, animation, animationTime) {
return UpdateOrDeleteRecipe(
title: title,
cookTime: cookTime,
rating: rating,
thumbnailUrl: thumbnailUrl,
);
},
),
);
},
child: Container(...),
);
}
}
现在在上面的代码中,作为返回InkWell( onTap: () {
,我希望传递类名,这样当卡片被单击时,它将移动到我希望它移动的类。
我该怎么做呢?记住当我移动到下一页时,下面的参数也会移动到下一页。
return UpdateOrDeleteRecipe(
title: title,
cookTime: cookTime,
rating: rating,
thumbnailUrl: thumbnailUrl,
);
1条答案
按热度按时间dvtswwa31#
如果管理员和用户有两个单独的屏幕,您可以在
pageBuilder
中放置isAdmin ? UpdateOrDeleteRecipe(...) : Detail()
这样的条件,或者您可以为管理员和用户创建一个屏幕,并在屏幕参数上放置bool isAdmin
参数,当管理员进入该屏幕时,isAdmin将为真,因此,您可以显示编辑/删除选项,如果isAdmin为假,则不显示这些选项。