Class BaseMessageItemProvider
-
- All Implemented Interfaces:
-
io.rong.imkit.conversation.messgelist.provider.IConversationSummaryProvider,io.rong.imkit.conversation.messgelist.provider.IMessageProvider,io.rong.imkit.widget.adapter.IViewProvider
public abstract class BaseMessageItemProvider<T extends MessageContent> implements IMessageProvider<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classBaseMessageItemProvider.MessageViewHolder
-
Field Summary
Fields Modifier and Type Field Description protected final static StringTAGprotected MessageItemProviderConfigmConfig
-
Constructor Summary
Constructors Constructor Description BaseMessageItemProvider()
-
Method Summary
Modifier and Type Method Description ViewHolderonCreateViewHolder(ViewGroup parent, int viewType)abstract ViewHolderonCreateMessageContentViewHolder(ViewGroup parent, int viewType)创建 ViewHolder booleanisItemViewType(UiMessage item)voidbindViewHolder(ViewHolder holder, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)根据数据源绑定视图 abstract voidbindMessageContentViewHolder(ViewHolder holder, ViewHolder parentHolder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)设置消息视图里各 view 的值 abstract booleanonItemClick(ViewHolder holder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)booleanonItemLongClick(ViewHolder holder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)voidsetTextMessageContent(TextView textView, UiMessage uiMessage, SpannableStringBuilder span)voidsetReferenceMessageContent(TextView textView, UiMessage uiMessage, SpannableStringBuilder span)booleanshowReadReceiptRequest(Message message)abstract booleanisMessageViewType(MessageContent messageContent)根据消息内容,判断是否为本模板需要展示的消息类型 booleanisSummaryType(MessageContent messageContent)是否为本模板处理的消息内容。 booleanshowSummaryWithName()是否需要在会话里拼接发送者名称。 此配置只对群组会话有效。 booleanshowBubble()booleancheckViewsValid(Array<View> views)-
-
Method Detail
-
onCreateViewHolder
ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
-
onCreateMessageContentViewHolder
abstract ViewHolder onCreateMessageContentViewHolder(ViewGroup parent, int viewType)
创建 ViewHolder
- Parameters:
parent- 父 ViewGroupviewType- 视图类型- Returns:
ViewHolder
-
isItemViewType
boolean isItemViewType(UiMessage item)
- Parameters:
item- 数据- Returns:
是否是模板类型
-
bindViewHolder
void bindViewHolder(ViewHolder holder, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)
根据数据源绑定视图
- Parameters:
holder- 视图position- 位置
-
bindMessageContentViewHolder
abstract void bindMessageContentViewHolder(ViewHolder holder, ViewHolder parentHolder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)
设置消息视图里各 view 的值
- Parameters:
holder- ViewHolderparentHolder- 父布局的 ViewHoldert- 此展示模板对应的消息uiMessage- UiMessageposition- 消息位置list- 列表listener- ViewModel 的点击事件监听器。如果某个子 view 的点击事件需要 ViewModel 处理,可通过此监听器回调。
-
onItemClick
abstract boolean onItemClick(ViewHolder holder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)
- Parameters:
holder- ViewHoldert- 自定义消息uiMessage- UiMessageposition- 位置list- 列表数据listener- ViewModel 的点击事件监听器。如果某个子 view 的点击事件需要 ViewModel 处理,可通过此监听器回调。- Returns:
点击事件是否被消费
-
onItemLongClick
boolean onItemLongClick(ViewHolder holder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)
-
setTextMessageContent
void setTextMessageContent(TextView textView, UiMessage uiMessage, SpannableStringBuilder span)
-
setReferenceMessageContent
void setReferenceMessageContent(TextView textView, UiMessage uiMessage, SpannableStringBuilder span)
-
showReadReceiptRequest
boolean showReadReceiptRequest(Message message)
- Returns:
群组或讨论组是否展示消息已读回执, 默认只有文本消息展示 子类可以重写此方法
-
isMessageViewType
abstract boolean isMessageViewType(MessageContent messageContent)
根据消息内容,判断是否为本模板需要展示的消息类型
- Parameters:
messageContent- 消息内容- Returns:
本模板是否处理。
-
isSummaryType
boolean isSummaryType(MessageContent messageContent)
是否为本模板处理的消息内容。
- Parameters:
messageContent- 待处理的消息内容- Returns:
是否处理。true 代表是本模板需要处理的消息,上层会继续调用模板的 getSummarySpannable ()} 获取资源。 false 代表不是本模板需要处理的消息。
-
showSummaryWithName
boolean showSummaryWithName()
是否需要在会话里拼接发送者名称。 此配置只对群组会话有效。
-
showBubble
boolean showBubble()
-
checkViewsValid
boolean checkViewsValid(Array<View> views)
-
-
-
-