我在一个屏幕上有2个水平列表,列表A(新产品)和列表B(最畅销)。列表A的每个产品也可以在列表B中。这是产品小部件。
Column(
children: [
Hero(
tag: product.id,
child: Image.asset('images/product.jpg'),
),
Text(${product.name)
],
);
假设产品在列表A和列表B中,并且我想使用英雄小部件,该怎么做?因为我尝试过,但给了我一个错误
There are multiple heroes that share the same tag within a subtree.
非常感谢您的帮助!
答案 0 :(得分:0)
我不完全理解您的要求,但是在查看错误时,我只能建议您为Hero标记提供一个product.name值,以解决您的错误。 基本上,您不能对每个带有英雄部件的列表项应用相同的标签名称,因为它应该是唯一的,我也遇到了相同的错误,因此我通过将标签值指定为图像名称来解决了这个问题。
答案 1 :(得分:0)
您可以将“ new”和“ most_selling”添加到标签中,这样您就可以在两个列表中使用两个不同的标签来拥有相同的商品
即 清单A(项目1):
Hero(
tag: "item_1_new",
child: //
),
列表B(项目1):
Hero(
tag: "item_1_most_selling",
child: //
),