我有两个水平列表,列表A(新产品)和列表B(最畅销),在一个屏幕上。列表A的每个产品也可以在列表B中。这是简单的产品小部件。
Column(
children: [
Hero(
tag: product.id,
child: Image.asset('images/product.jpg'),
),
Text(${product.name)
],
);
假设一个产品在列表A和列表B中,我想使用Hero部件,怎么做呢?2因为我试过了,但它给了我一个错误
There are multiple heroes that share the same tag within a subtree.
我真的很感激你的帮助!
3条答案
按热度按时间aurhwmvo1#
我没有完全理解你的要求,但在看错误,我只能建议你给予你的英雄标签的值为product.name,这将解决你的错误。基本上你不能应用相同的标签名称,以英雄部件的每个列表项目,因为它应该是唯一的,我也面临着同样的错误,我解决了它的标签值为图像名称。
wtlkbnrh2#
您可以将“new”和“most_selling”添加到标签中,这样您就可以使用两个不同的标签在两个列表中显示相同的项目
即名单A(项目1):
名单B(项目1):
ecbunoof3#
如果你正在尝试给予小部件英雄动画没有导航,我想这个包可以帮助你:https://pub.dev//packages/hero_animation