如果我对某些小部件使用GlobalKey
final gridBuilder = GridView.builder(
itemCount: movies.length,
key: GlobalKey(debugLabel: "gridView"),
调用时无法访问GridView
find.byKey(Key('gridView'));
无
find.byKey(GlobalKey(debugLabel: "gridView"));
除了按类型或文本查找以外,是否有其他解决方案?
答案 0 :(得分:0)
我在这里遇到了同样的问题,您找到一种解决问题的方法了吗?
除了将\
包装在GlobalKey
中并赋予其Container
之外,没有其他方法可以将Key
保留在小部件上:
final Container gridBuilder = Container(
key: Key('gridView'),
child: GridView.builder(
itemCount: movies.length,
key: GlobalKey(),
),
);
然后在测试中,您可以通过以下方式访问GridView
:
find.descendant(of: find.byKey(Key('gridView')), matching: find.byType(GridView));
答案 1 :(得分:0)
我遇到了完全相同的问题。 @jordan LL解决方案非常完美!!!作为一种解决方法,我使用了遵循策略:
而是使用:
var key1 = find.byKey(ValueKey(key'$OVERVIEW_GRID_ITEM_FAVORITE_BUTTON_KEY\_0'));
我使用以下方法工作:
var key1 = find.descendant( of: find.byKey(Key('$OVERVIEW_GRID_ITEM_FAVORITE_BUTTON_KEY\_0')), matching: find.byType(OverviewGridItem));