需要用到RecycleView的getItemDecorationCount方法(如果这个方法没有那就是RecycleView的版本不高导致导致的27的版本是有的)
然后通过这一段代码判断就行了:
if(mRecyclerView.getItemDecorationCount() > 0){
RecyclerView.ItemDecoration itemDecorationAt = mRecyclerView.getItemDecorationAt(0);
if(itemDecorationAt == null){
mRecyclerView.addItemDecoration(decoration);
}
}else{
//需要在setLayoutManager()之后调用addItemDecoration()
mRecyclerView.addItemDecoration(decoration);
}
mRecyclerView为RecycleView,decoration为RecyclerView.ItemDecoration
当在Android中多次调用RecycleView的addItemDecoration方法时,可能会导致间隔增大。这个问题可以通过检查RecycleView的getItemDecorationCount方法来解决,确保使用了高版本的RecycleView,比如27及更高版本。通过对mRecyclerView的item decoration数量进行判断,可以避免间隔异常的问题。

1042

被折叠的 条评论
为什么被折叠?



