我们正在开发一个聊天应用程序。如果消息包含图像,并且它们一个接一个地出现,我们在适配器中将这些图像分组到一个消息中。
问题 1
在数据库和 API 的其余部分中,我们分别拥有这些消息,但在适配器中,我们将它们分组以作为一条带有小图像图标的大消息显示给用户。
我们希望实现一个分页库,以便可以滚动到历史记录中的任何消息。目前,我们正在使用 a RemoteMediator<Int, Message>
,它向我们的服务器发出请求并获取消息。为了存储我们正在使用的这些消息Room
,它返回PagingSource<Int, Message>
. 显示我们正在使用的消息PagingDataAdapter
一切正常,问题是我们如何在 Paging 3 中实现这种分组图像逻辑?我们可以在哪些步骤以及何时进行此更改并将消息组合在一起?
示例:
Message1_Text1 - Message2_Image1 - Message3_Image2 - Message4_Text2
分组后,我们应该收到
Message1_Text1 - Message2_(Image1_Image2) - Message3_Text2
问题2
根据消息是什么before
,after
我们会以不同的方式显示消息,例如,我们仅在第一条消息上显示配置文件图标,来自同一用户的所有其他消息显示时没有配置文件图标。
我们可以更改我们的数据,PagingData.map{}
但我们没有关于之前和之后项目的任何信息。这怎么可能实现?