【发布时间】:2021-01-17 16:43:53
【问题描述】:
这是我的 onBindViewHolder:
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
MessageModel message = values.get(position);
switch (holder.getItemViewType()) {
case VIEW_TYPE_VIDEO_SENT:
((VideoMessageHolder) holder).sentBinding.setMessageModel(message);
break;
case VIEW_TYPE_VIDEO_RECEIVED:
((VideoMessageHolder) holder).receivedBinding.setMessageModel(message);
break;
}
}
这是我的 ViewHolder:
private class VideoMessageHolder extends RecyclerView.ViewHolder {
private RowRecyclerViewChatVideoMessageSentBinding sentBinding;
private RowRecyclerViewChatVideoMessageReceivedBinding receivedBinding;
VideoMessageHolder(RowRecyclerViewChatVideoMessageSentBinding binding) {
super(binding.getRoot());
this.sentBinding = binding;
}
VideoMessageHolder(RowRecyclerViewChatVideoMessageReceivedBinding binding) {
super(binding.getRoot());
this.receivedBinding = binding;
}
}
我希望能够获得适当的绑定,以便能够对内部视图进行更改。
【问题讨论】:
-
你能具体解释一下你需要什么吗?此代码是否构建?应用程序会崩溃吗?说出正在发生的事情与您想要发生的事情等。
-
因为我为每条视频消息有两个单独的布局(一个是左向的,另一个是在聊天中的右向,没有什么不同),例如,我希望能够对无论 rcvd 视图持有者还是发送的视图持有者,视图的更改都是相同的,所以我不想为每个视图持有者创建单独的视图持有者并重写它们中的代码....
标签: android android-recyclerview android-viewbinding