1.?異常導(dǎo)致崩潰: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
問(wèn)題點(diǎn):
@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