Android-StepsView icon indicating copy to clipboard operation
Android-StepsView copied to clipboard

Invalid index 2, size is 2

Open jkyeo opened this issue 9 years ago • 6 comments

When the label array size() > 2. throw exception: Invalid index 2, size is 2

jkyeo avatar Nov 12 '15 06:11 jkyeo

The same problem

gabri15 avatar May 12 '16 18:05 gabri15

if size 2 index are 0 , 1

karimi12 avatar Jul 27 '16 10:07 karimi12

The same , who solved this problem?

yanshengqi avatar Sep 14 '16 03:09 yanshengqi

我解决了这个问题,关键是这个函数导致的 public void onSizeChanged(int w, int h, int oldw, int oldh) ,详情请加qq群联系151909524。

Arisono avatar Dec 21 '16 06:12 Arisono

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(); }

Arisono avatar Dec 21 '16 06:12 Arisono

如果不采取上面的方法, 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(); 需要初始化一次,然后从网络取数据的时候,再执行一次,如果采取上述的解决方案, 就不需要初始化一次,直接网络加载完毕执行一段这样的代码,加载数据就可以;

Arisono avatar Dec 21 '16 06:12 Arisono