ConcatAdapter在ItemDecoration里获取准确的ViewType

1,460 阅读1分钟

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

参考资料: