【发布时间】:2020-01-17 12:01:18
【问题描述】:
我是 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(),因此我可以在运行时更改一些外观属性。这个想法是在做这样的事情(这个 sn-p 不起作用):
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 不存在。到目前为止,我已经尝试了很多东西(方法、技巧等),但都没有奏效。
你能帮帮我吗?
【问题讨论】:
标签: mobile flutter layout dart stream-builder