dart 如何在同一个屏幕中使用两个带有相同标签的英雄?

yhxst69z  于 2023-02-10  发布在  其他
关注(0)|答案(3)|浏览(110)

我有两个水平列表,列表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.

我真的很感激你的帮助!

aurhwmvo

aurhwmvo1#

我没有完全理解你的要求,但在看错误,我只能建议你给予你的英雄标签的值为product.name,这将解决你的错误。基本上你不能应用相同的标签名称,以英雄部件的每个列表项目,因为它应该是唯一的,我也面临着同样的错误,我解决了它的标签值为图像名称。

wtlkbnrh

wtlkbnrh2#

您可以将“new”和“most_selling”添加到标签中,这样您就可以使用两个不同的标签在两个列表中显示相同的项目
即名单A(项目1):

Hero(
   tag: "item_1_new",
   child: //
),

名单B(项目1):

Hero(
   tag: "item_1_most_selling",
   child: //
),
ecbunoof

ecbunoof3#

如果你正在尝试给予小部件英雄动画没有导航,我想这个包可以帮助你:https://pub.dev//packages/hero_animation

相关问题