带有嵌套AnimatedList的Firestore StreamBuilder

我目前正在研究应用程序的聊天功能。并且我在StreamBuilder中设置了AnimatedList,以使消息反向显示。这是我的代码

      children: <Widget>[

new Flexible(

child: new StreamBuilder<QuerySnapshot> (

stream: chatRoomRef.document(widget.chatRoomID).collection('messages')

.orderBy('time').snapshots(),

builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){

return new AnimatedList(

reverse: true,

padding: const EdgeInsets.all(8.0),

itemBuilder: (BuildContext context, int index, Animation<double> animation) {

return new ChatMessageListItem(

context: context,

index: index,

animation: animation,

reference: snapshot,

);

}

);

},

),

),

我的问题是该构建器从未被点击,因此AnimatedList从未被调用。我不确定设置是否正确,因此对此表示感谢。

编辑:我正在尝试使其像FirebaseAnimatedList小部件一样工作。我不知道这是否有助于了解我的目标。

谢谢

回答:

更新:我通过添加自定义动画以及修改cloud_firestore文档中的代码来修复它。我的代码现在看起来像这样

 new Flexible(

child: new StreamBuilder<QuerySnapshot> (

stream: chatRoomRef.document(widget.chatRoomID).collection('messages')

.orderBy('time').snapshots(),

builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){

return snapshot.hasData ? new ListView(

physics: const AlwaysScrollableScrollPhysics(),

reverse: true,

padding: const EdgeInsets.all(8.0),

children: snapshot.data.documents.map((DocumentSnapshot messageSnapshot) {

return new ChatMessageListItem(

context: context,

animation: _animation,

messageSnapshot: messageSnapshot,

currentUserEmail: curUserEmail,

);

}).toList(),

): const CircularProgressIndicator();

以上是 带有嵌套AnimatedList的Firestore StreamBuilder 的全部内容, 来源链接: utcz.com/qa/408559.html

回到顶部