public void smoothScrollToValue(int fromValue, int toValue, boolean needRespond){
int deltaIndex;
fromValue = refineValueByLimit(fromValue, mMinValue, mMaxValue,
mWrapSelectorWheel && mWrapSelectorWheelCheck);
toValue = refineValueByLimit(toValue, mMinValue, mMaxValue,
mWrapSelectorWheel && mWrapSelectorWheelCheck);
if(mWrapSelectorWheel && mWrapSelectorWheelCheck) {
deltaIndex = toValue - fromValue;
int halfOneRecycleSize = getOneRecycleSize() / 2;
if(deltaIndex < -halfOneRecycleSize || halfOneRecycleSize < deltaIndex ){
deltaIndex = deltaIndex > 0 ? deltaIndex - getOneRecycleSize() : deltaIndex + getOneRecycleSize();
}
}else{
deltaIndex = toValue - fromValue;
}
setValue(fromValue);
if(fromValue == toValue) return;
scrollByIndexSmoothly(deltaIndex, needRespond);
}