public void select(boolean setActiveColor, int animationDuration) {
        isActive = true;

        ValueAnimator animator = null;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
            animator = ValueAnimator.ofInt(containerView.getPaddingTop(), paddingTopActive);
            animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator valueAnimator) {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
                        containerView.setPadding(containerView.getPaddingLeft(),
                                (Integer) valueAnimator.getAnimatedValue(),
                                containerView.getPaddingRight(),
                                containerView.getPaddingBottom());
                    }
                }
            });
            animator.setDuration(animationDuration);
            animator.start();
        }

        iconView.setSelected(true);
        if (setActiveColor) {
            labelView.setTextColor(mActiveColor);
        } else {
            labelView.setTextColor(mBackgroundColor);
        }

        if (badgeItem != null) {
            badgeItem.select();
        }
    }
Class description

@author ashokvarma
@version 1.0
@see FrameLayout
@since 19 Mar 2016
common/src/main/java/com/sxjs/common/widget/bottomnavigation/BottomNavigationTab.java