concatAdapter很好用,但是因为他内部会做ViewType的转换,所以当我们在ItemDecoration里或者在ViewHolder里获取ViewType的时候,就懵逼了。
只有用你自己的adapter去获取ViewType的时候,才是准确的。
获取到错误的ViewType:
recycler.getAdapter().getItemViewType(postion)
这时候获取的是ConcatAdapter转换后的ViewType
正确的做法:
int itemType = recycler.getChildViewHolder(view).getBindingAdapter().getItemViewType(position);
先获取到对应的adapter,然后再根据对应的adapter获取到ViewType
参考资料:
- concatAdapter的源码解析www.jianshu.com/p/67b0a3c3c…