我要在发送后显示图像文件。但结果是空消息,并显示在屏幕的左侧(接收侧)。任何url设置都会发生这种情况。
我的item_list.xml
<com.stfalcon.chatkit.messages.MessagesList
android:id="@+id/chat.room.messagesList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/chat.room.input" />我的适配器:
adapter = new MessagesListAdapter<ChatMessage>(getMyChatUser().getId(), null);
messagesList.setAdapter(adapter);或
adapter = new MessagesListAdapter<ChatMessage>(getMyChatUser().getId(), imageLoader);
messagesList.setAdapter(adapter);用ImageLoader
imageLoader = new ImageLoader() {
@Override
public void loadImage(ImageView imageView, @Nullable String url, @Nullable Object payload) {
Picasso.with(getActivity()).load(url).into(imageView);
}
};我的附件:
messageInput.setAttachmentsListener(new MessageInput.AttachmentsListener() {
@Override
public void onAddAttachments() {
ChatMessage chatMessage = new ChatMessage(String.valueOf(new Random().nextInt()), null, getMyChatUser());
chatMessage.setImage(urlImage);
adapter.addToStart(chatMessage, true);
}
});正如官方指南所说,ChatMessage实现了MessageContentType.Image。
解决方案实现是正确的。我传递了错误的URL格式
发布于 2019-01-23 16:15:11
几个注意事项
当您希望适配器包含图像/s时,这就是构造函数。
MessagesListAdapter<Message> adapter = new MessagesListAdapter<T>(senderId, imageLoader);
messagesList.setAdapter(adapter);关于MessageListAdapter.java的更多信息
/**
* For default list item layout and view holder.
*
* @param senderId identifier of sender.
* @param imageLoader image loading method.
*/
public MessagesListAdapter(String senderId, ImageLoader imageLoader) {
this(senderId, new MessageHolders(), imageLoader);
}出了什么问题,
在构造函数上传递null
adapter = new MessagesListAdapter<ChatMessage>(getMyChatUser().getId(), null);
messagesList.setAdapter(adapter);如果方法返回null,则适配器将消息识别为文本消息,并以适当的形式显示它。如果图像的url存在,则将使用ImageLoader显示图像,我们将其传递给适配器。
你能做什么
创建类似于this1的内容并将其传递给MessageListAdapter
ImageLoader imageLoader = new ImageLoader() {
@Override
public void loadImage(ImageView imageView, String url) {
Picasso.with(MessagesListActivity.this).load(url).into(imageView);
}
};阅读关于的更多信息
https://stackoverflow.com/questions/54330506
复制相似问题