private void scrollAndAnimateBy(int increment) {
        if (scrollerTimer == null || !scrollerTimer.isRunning()) {
            int index = itemIndex + increment;
            if (index < 0) {
                index = 0;
            } else if (index >= dataModel.getSize()) {
                index = dataModel.getSize() - 1;
            }

            if (index == itemIndex) {
                return;
            }

            DrawableItem drawable = null;

            if (drawableItems != null) {
                for (DrawableItem item : drawableItems) {
                    if (item.index == index) {
                        drawable = item;
                        break;
                    }
                }
            }


            if (drawable != null) {
                scrollAndAnimate(drawable);
            }
        }
    }