我是 Flutter 的新手,我试图弄清楚如何让 StreamBuilder 的已构建小部件子级对小部件的外观进行一些更改。
我有一些像这样的小部件,已经构建并保存到列表中:
GestureDetector(
child: StreamBuilder(
stream: (bloc as HomeBloc).outCategoriesCardsColors,
builder: (context, snapshot) {
if (snapshot.hasData) {
return CardSmallSquare(
title: key,
size: CardSmallSquare.defaultCardSize,
iconUrl: categories[key],
borderColor: snapshot.data[index + 1] ?? Colors.red,
);
} else {
return CardSmallSquare.buildLoadingCard(context);
}
}),
onTap: () {},
));
稍后我尝试使用这些小部件访问我的列表并访问由 StreamBuilder 返回的 CardSmallSquare(),因此我可以在运行时更改一些外观属性。这个想法是在做这样的事情(这个片段不起作用):
int index = _widgets.indexWhere((widget) {
CardSmallSquare card = (((widget as GestureDetector).child as StreamBuilder).child as CardSmallSquare);
if (card.title == "Title") {
return true;
}
return false;
});
StreamBuilder.child 不存在。到目前为止,我已经尝试了很多东西(方法、技巧等),但都没有奏效。
请问你能帮帮我吗?