BUG-Android 4. Bug 汇总
1. 异常导致崩溃:java.lang.IndexOutOfBoundsException: Invalid item position 0(0). Item count:0 PageRecyelerView.PageRecyclerView{b2c437c VFED..... ......I. 0,0-0,0 #7f070062 app:id/cusom_swipe_view}, adapter:PageRecyelerView.PageRecyclerView$PageAdapter@c50b405, layout:PageRecyelerView.AutoGridLayoutManager@6145c5a, context:PageRecyelerView.pageMainActivity@71cf016
问题点:
@Override
public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state, int widthSpec, int heightSpec) {
if (measuredHeight <=0) {
View view = recycler.getViewForPosition(0);
if (view !=null) {
measureChild(view, widthSpec, heightSpec);
measuredWidth = View.MeasureSpec.getSize(widthSpec);
measuredHeight = view.getMeasuredHeight() * getSpanCount();
}
}
setMeasuredDimension(measuredWidth, measuredHeight);
}
解决方法:
//获取count判断,必须要有
int count = state.getItemCount();
if (count >0) {
if (measuredHeight <=0) {
View view = recycler.getViewForPosition(0);
measureChild(view, widthSpec, heightSpec);
measuredWidth = View.MeasureSpec.getSize(widthSpec);
measuredHeight = view.getMeasuredHeight() * getSpanCount();
}
setMeasuredDimension(measuredWidth, measuredHeight);
}else {
super.onMeasure(recycler, state, widthSpec, heightSpec);
}
原档:https://blog.csdn.net/qq_26530191/article/details/83622434