好的,我可以像发送任何简单的聊天应用一样发送短信。现在我也想发送图像(之后可能是pdf等附件)。因此,短信和图片的布局将有所不同。
当前,我有一个适配器类,并且数据在recyclerView中接收。下面是我的适配器类:
public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ViewHolder> {
public List<TextMessage> messageList;
public Context context;
public MessageAdapter(List<TextMessage> messageList){
this.messageList = messageList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_text_message,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.Text.setText(messageList.get(position).getMessage());
}
@Override
public int getItemCount() {
return messageList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
View mView;
public TextView Text;
public ViewHolder(View itemView) {
super(itemView);
mView = itemView;
Text = mView.findViewById(R.id.textView_message_text);
}
}
}
现在如果我也有图像布局怎么办?有没有办法组合布局?还是要制作不同的布局文件以及不同的模型类?我应该如何进行呢?我不要任何代码。只是这种情况的前进之路。
答案 0 :(得分:1)
您可以基于viewType拥有多种类型的视图持有人。您必须重写getViewType并返回视图类型int,对于视频说1,对于消息说2(您需要根据您应用中的数据构建该逻辑),然后在onCreateViewHolder方法中使用viewType varidable来确定所需的视图持有者显示