回复列表项目可以单独放在一个小部件里面,新建一个文件,放在 lib/reply/index/components 下面,名字是 reply_list_item.dart ,文件里定义一个小部件,名字是 ReplyListItem 。
reply_list
打开 reply_list ,修改一下这里 return 的这个小部件,换成 ReplyListItem ,提供一个 item 参数。
reply_list_item
回到 reply_list_item ,继续编辑这个小部件,这个小部件跟 comment_list_item 差不多,打开这个 comment_list_item,复制一下它的 build 方法里的这些东西。回到 reply_list_item ,把复制的东西粘贴到这个 build 方法里面,再修改一下。
这个 thumbnail 的边距的 top 改成 2 ,导入需要的 UserAvatar 小部件,user 的值是 reply.user! ,把 size 修改成 18 。
下面这个 userName 的 Text 改成 reply.user!.name 。commentContent 改成 replyContent,显示的文字是 reply.content! 。删除掉下面这个 actions, 再删除掉 replies 。
在这个 content 里面,把 commentContent 改成 replyContent,去掉下面的 actions ,还有 replies 。
观察一下现在的这个回复列表的样式,列表项目之间的距离可以再调整一下,现在是 24,这里把它改成 8 ,然后再观察一下这个回复列表。
发布
下面我们可以打开应用的前端,然后找到这个内容项目,打开它,再打开评论,给这条评论添加一个新的回复,发布一下。
在我们的这个移动端应用这里,关闭回复列表,重新再打开它,你会发现这里会出现新添加的这条回复数据。
修复*
最后我们再修复一个错误,现在打开回复列表的时候,会先显示 AppNoContent ,我们让它先显示一个 AppIndicator 。打开 reply_list ,这里可以把它的 loading 默认的值设置成 true 。
下面再找一个有回复的评论,打开它的回复列表,你会发现这次加载回复数据的时候就会显示一个 AppIndicator 小部件。