我正在制作一个带有评论部分的屏幕,其中包含评论及其子评论。
我使用 ScopedModel 来管理屏幕的状态。
评论的数据在 List<-model-> 中,子评论的数据在 model->List<-model-> 中。此数据在 ScopedModel 中。
我使用 SliverChildBuilderDelegate 构建了一个 sliverList,因此它只构建屏幕上的小部件。
每个评论 (current_comment) 都有一个回复按钮,在输入后,在 (current_comment)model-> List<-model-> 的末尾添加一个评论模型,并在 ScopedModel 上调用 notifyListener()
现在新添加的子评论有一个标签,将其标识为新评论。
我想要的是:
我希望屏幕滚动到新添加的子评论。
我尝试了什么:
由于新添加的子评论可以由标签标识,因此我在构建该评论小部件时为其添加了一个 GlobalKey。然后在构建完成后,我使用从添加到它的 GlobalKey 获得的偏移量滚动到该位置。
我的问题 :
由于 SliverList 构建的元素仅对屏幕可见,因此新添加的评论远低于父评论(因为回复评论按钮仅在父评论上)并且尚未构建。因此构建器尚未将 GlobalKey 附加到它。
现在,我如何自动滚动到它?
由于密钥尚未附加到它,我如何定位它的位置并滚动到它?
建议我一种方法来一次构建 Sliverlist 的所有元素,以便可以将键附加到元素或其他策略,以便自动滚动到新添加的评论。