如何在带有 ItemViewType 的 Adapter 中使用 ViewBinding
How to use ViewBinding in Adapter with ItemViewType
我有一个用于聊天的 Recyclerview
的 Adapter
,所以我在 onCreateViewHolder
方法中膨胀了 2 个布局。
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int position) {
if (position == MY_MESSAGES) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_right_chat, parent, false);
return new ViewHolder(view);
} else {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_left_chat, parent, false);
return new ViewHolder(view);
}
}
自从我用 ButterKnife
实例化后,我使用了相同的 ViewHolder
,但是现在我想使用 ViewBinding
,但我不知道如何使用单个 [=14] =] 如果我必须为每个布局生成一个绑定对象。
感谢您的帮助。
从 build.gradle
启用 ViewBinding
后,Android 将为根部带有 layout
标记的每个布局资源创建单独的绑定模型。因此,您应该考虑使用两种不同的 ViewHolder
class 作为一种更简洁的方法,您可以获得每个布局的 binding
模型:ItemRightChatBindingModel
和 ItemLeftChatBindingModel
.
我有一个用于聊天的 Recyclerview
的 Adapter
,所以我在 onCreateViewHolder
方法中膨胀了 2 个布局。
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int position) {
if (position == MY_MESSAGES) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_right_chat, parent, false);
return new ViewHolder(view);
} else {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_left_chat, parent, false);
return new ViewHolder(view);
}
}
自从我用 ButterKnife
实例化后,我使用了相同的 ViewHolder
,但是现在我想使用 ViewBinding
,但我不知道如何使用单个 [=14] =] 如果我必须为每个布局生成一个绑定对象。
感谢您的帮助。
从 build.gradle
启用 ViewBinding
后,Android 将为根部带有 layout
标记的每个布局资源创建单独的绑定模型。因此,您应该考虑使用两种不同的 ViewHolder
class 作为一种更简洁的方法,您可以获得每个布局的 binding
模型:ItemRightChatBindingModel
和 ItemLeftChatBindingModel
.