我正在使用Firebase和recyclerview进行聊天活动。我遇到了一点问题。当出现新消息时,请使用notifyItemInserted,然后使用smoothScrollToPosition。当很少收到第一条消息时(直到屏幕上未充满消息),它们显示的都非常流畅,看起来与Facebook Messenger中的相同,但是当滚动到新消息时,弹出的消息超出了我们的屏幕。眨眼看起来不好。我认为这与通过recyclerview进行视图回收或平滑滚动有关,但是我不知道该如何处理。
一些询问的代码:
var usedParts = new Dictionary<string, int>();
.....
foreach (var rep in u.PartsUsed)
{
if (!usedParts.ContainsKey(rep.Repair.Name))
{
usedParts[rep.Repair.Name] = rep.RepairPartQuantity;
}
else
{
usedParts[rep.Repair.Name] += rep.RepairPartQuantity;
}
}
foreach (var kvp in usedParts)
{
str.AppendFormat(str.Length > 0 ? Environment.NewLine + "{0} - {1}" : "{0} - {1}", kvp.Value, kvp.Key);
totalCount += kvp.Value;
}
你们能和我分享一些技巧吗? 谢谢
答案 0 :(得分:1)
您的问题中有很多未知的地方,但是通常来说,如果您使用的是RecyclerView(如前所述),则可以通过在reverseLayout
中将LinearLayoutManager
设置为“ true”来改善UI体验(我猜)。这样做会使您的消息显示在列表的底部。如果您进行分页,这仍然有其自身的问题,具体取决于您如何进行分页等。
更新(下面的聊天要点):