如何强制重建清单?

时间:2019-03-20 16:37:04

标签: oop dart flutter flutter-layout flutter-animation

我正在使随机聊天应用使用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'];
}

有人帮忙吗? 谢谢!

0 个答案:

没有答案