android - 聊天正常,但做了一些奇怪的事情
问题描述
我实现了一个聊天,当前用户的消息在右边,其他用户的消息在左边。一切正常,但如果我向用户写超过 +- 10 条消息,一些消息气泡会随机变化(主要是从左到右)。如果我关闭聊天活动并返回,他们会回到原来的位置,如果我再次写消息,他们会重新开始改变立场。
这是适配器的功能,我决定将哪个消息放在左侧和哪个右侧。我有一个聊天列表,其中保存了所有消息,getCurrentUser 是一个布尔值,如果消息来自当前用户,则返回 true,否则返回 false。
感谢您的任何回答。
public void onBindViewHolder(ChatViewHolders holder, int position) {
holder.mMessage.setText(chatList.get(position).getMessage());
if(chatList.get(position).getCurrentUser()){
holder.mMessage.setBackgroundResource(R.drawable.button_bg_round);
holder.mMessage.setGravity(Gravity.END);
holder.mContainer.setGravity(Gravity.END);
holder.mMessage.setTextColor(Color.parseColor("#ffffff"));
}else {
holder.mMessage.setGravity(Gravity.START);
holder.mMessage.setTextColor(Color.parseColor("#000000"));
}
}
解决方案
推荐阅读
- apache-beam - 带有 CheckStopReadingFn 的 Beam Pipeline 在从 CheckStopReadingFn 返回 true 时抛出 IllegalStateException
- reactjs - react js中如何配置自动翻译?
- anaconda - 解决环境:使用 current_repodata.json 失败,将使用下一个 repodata 源重试。Conda 无法创建新环境
- node.js - Nodejs `fs.createReadStream` 作为承诺
- php - 从外部 highcharts 网站导出值
- bash - 在 bash 中,是否可以为命名为数组成员的变量赋值?
- javascript - 通过在 props 中传递它来更新 Vue3 反应对象
- c# - 希望在 C# 中搜索由 inputFile 填充的列表框,以查看它是否包含用户输入到文本框中的字符串
- spring-webflux - Webflux 访问日志头
- r - R:我想将 31 个字符变量的值粘贴在一起,而不明确引用每个变量名