我正在使随机聊天应用使用FirestoreAnimatedList
(对于Firestore,是FirebaseAnimatedList
)。
通常是工作。
但是当显示用户头像(Icons.account_circle
)时会闪烁。例如,有时它显示多余的Icon
(错误),然后又不显示(正确)。
所以我认为可能是因为Widget重建?但是我不知道怎么解决。
final Map<int, dynamic> map = {};
...
body: FirestoreAnimatedList(
query: firestore.collection('messages').snapshots(),
itemBuilder: (
BuildContext context,
DocumentSnapshot snapshot,
Animation<double> animation,
int index,
) {
map[index] = snapshot;
return FadeTransition(
opacity: animation,
child: MessageItem(
index: index,
document: snapshot,
map: map,
onTap: _removeMessage,
),
);
},
class MessageItem extends StatelessWidget {
…
@override
Widget build(BuildContext context) {
return Container(
child: new Row(
children: <Widget>[
new Container(
child:
_sameUser() ?
new Icon(
Icons.account_circle
)
:
Container()
bool _sameUser () {
assert(index >= 0);
assert(map != null);
return map[index + 1] != null && map[index + 1]['fromUser'] == map[index]['fromUser'];
}
有人帮忙吗? 谢谢!