Android-StepsView
Android-StepsView copied to clipboard
Invalid index 2, size is 2
When the label array size() > 2. throw exception: Invalid index 2, size is 2
The same problem
if size 2 index are 0 , 1
The same , who solved this problem?
我解决了这个问题,关键是这个函数导致的 public void onSizeChanged(int w, int h, int oldw, int oldh) ,详情请加qq群联系151909524。
public void setStepSize(int size) {
mNumOfStep = size;
refreshSizePosition();//每次设置的时候,重新计算 mThumbContainerXPosition
invalidate();
}
@Override public void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); //refreshSizePosition();//这一行必须注释掉 }
private void refreshSizePosition() {
mCenterY = 0.5f * getHeight();
mLeftX = mPadding;
mLeftY = mCenterY - (mLineHeight / 2);
mRightX = getWidth() - mPadding;
mRightY = 0.5f * (getHeight() + mLineHeight);
mDelta = (mRightX - mLeftX) / (mNumOfStep - 1);
// if (mThumbContainerXPosition.size()>0)mThumbContainerXPosition.clear();
mThumbContainerXPosition.add(mLeftX);
for (int i = 1; i < mNumOfStep - 1; i++) {
mThumbContainerXPosition.add(mLeftX + (i * mDelta));
} mThumbContainerXPosition.add(mRightX); mDrawListener.onReady(); }
如果不采取上面的方法, mStepsView.setCompletedPosition(position%labels.length) .setLabels(labels) .setBarColorIndicator( ct.getResources().getColor(R.color.light_gray)) .setProgressColorIndicator(ct.getResources().getColor(R.color.orange)) .setLabelColorIndicator(ct.getResources().getColor(R.color.orange)) .drawView(); 需要初始化一次,然后从网络取数据的时候,再执行一次,如果采取上述的解决方案, 就不需要初始化一次,直接网络加载完毕执行一段这样的代码,加载数据就可以;