我正在尝试在recyclerview中添加多个视图.所以首先我添加了getItemView方法,
I'm trying to add multiple views in a recyclerview. So first I added getItemView method,
@Override public int getItemViewType(int position) { return type.get(position); }然后在oncreateviewholder方法中添加了这个
Then in the oncreateviewholder method I added this
@Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = null; switch (viewType){ case 0: v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.view1, parent, false); case 1: v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.view2, parent, false);; case 2: v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.view3, parent, false); } return new ViewHolder(v); }但是运行时它会给我java.lang.IllegalArgumentException: itemView may not be null错误...
But when run it it's giving me java.lang.IllegalArgumentException: itemView may not be null error...
推荐答案您的type集合返回的错误类型不属于此switch,或者您的错误位于其他地方.
Either your type collection returns wrong types that do not fall into this switch or your error lies somewhere else.
这是我的适配器的摘录,可以正常运行.
This is a snippet from my adapter and it works perfectly fine.
@Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { int layoutResId = (viewType == VIEW_TYPE_HEADER) ? R.layout.item_header : R.layout.item_content; return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(layoutResId, parent, false)); }尝试向此开关添加默认大小写,然后查看它是否解析布局.
Try adding a default case to this switch and see if it parses the layout then.
并且请说明代码中的types是什么以及如何对其进行初始化
and please clarify what types is in your code and how you initialize it
更多推荐
RecyclerViewAdapter中的itemview可能不是null错误
发布评论