我有两种完全不同的布局。一个带有图像视图,另一个带有文本视图。我希望能够在recyclerview中使用这两种布局。我该怎么办。帮助
答案 0 :(得分:0)
您必须重写RecyclerAdapter的getItemViewType函数。从中返回一个整数,该整数在onCreateViewHolder内部捕获。在其中,您可以选择为哪个ViewHolder充气。
@Override
public int getItemViewType(int position) {
if (TextUtils.isEmpty(employees.get(position).getEmail())) {
return TYPE_CALL;
} else {
return TYPE_EMAIL;
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
View view;
if (viewType == TYPE_CALL) { // for call layout
view = LayoutInflater.from(context).inflate(R.layout.item_call, viewGroup, false);
return new CallViewHolder(view);
} else { // for email layout
view = LayoutInflater.from(context).inflate(R.layout.item_email, viewGroup, false);
return new EmailViewHolder(view);
}
}