recyclerview中的多个查看器

时间:2019-10-01 16:45:22

标签: android-recyclerview android-viewholder

我有两种完全不同的布局。一个带有图像视图,另一个带有文本视图。我希望能够在recyclerview中使用这两种布局。我该怎么办。帮助

1 个答案:

答案 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);
    }
}