BUG-Android 4. Bug 汇总

2019-11-12  本文已影响0人  KYM1988

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

上一篇下一篇

猜你喜欢

热点阅读