library/src/main/java/com/arlib/floatingsearchview/util/view/MenuView.java
public void showIfRoomItems(boolean withAnim) {

        if (mMenu == -1) {
            return;
        }

        cancelChildAnimListAndClear();

        if (mMenuItems.isEmpty()) {
            return;
        }

        anims = new ArrayList<>();

        for (int i = 0; i < getChildCount(); i++) {

            final View currentView = getChildAt(i);

            //reset all the action item views
            if (i < mActionItems.size()) {
                ImageView action = (ImageView) currentView;
                final MenuItem actionItem = mActionItems.get(i);
                action.setImageDrawable(actionItem.getIcon());
                Util.setIconColor(action, mActionIconColor);
                action.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        if (mMenuCallback != null) {
                            mMenuCallback.onMenuItemSelected(mMenuBuilder, actionItem);
                        }
                    }
                });
            }

            Interpolator interpolator = new DecelerateInterpolator();
            if (i > (mActionShowAlwaysItems.size() - 1)) {
                interpolator = new LinearInterpolator();
            }

            currentView.setClickable(true);

            //simply animate all properties of all action item views back to their default/visible state
            anims.add(ViewPropertyObjectAnimator.animate(currentView)
                    .addListener(new AnimatorListenerAdapter() {
                        @Override
                        public void onAnimationEnd(Animator animation) {

                            currentView.setTranslationX(0);
                        }
                    })
                    .setInterpolator(interpolator)
                    .translationX(0).get());
            anims.add(ViewPropertyObjectAnimator.animate(currentView)
                    .addListener(new AnimatorListenerAdapter() {
                        @Override
                        public void onAnimationEnd(Animator animation) {

                            currentView.setScaleX(1.0f);
                        }
                    })
                    .setInterpolator(interpolator)
                    .scaleX(1.0f).get());
            anims.add(ViewPropertyObjectAnimator.animate(currentView)
                    .addListener(new AnimatorListenerAdapter() {
                        @Override
                        public void onAnimationEnd(Animator animation) {

                            currentView.setScaleY(1.0f);
                        }
                    })
                    .setInterpolator(interpolator)
                    .scaleY(1.0f).get());
            anims.add(ViewPropertyObjectAnimator.animate(currentView)
                    .addListener(new AnimatorListenerAdapter() {
                        @Override
                        public void onAnimationEnd(Animator animation) {

                            currentView.setAlpha(1.0f);
                        }
                    })
                    .setInterpolator(interpolator)
                    .alpha(1.0f).get());
        }

        if(anims.isEmpty()){
            return;
        }

        AnimatorSet animSet = new AnimatorSet();
        if (!withAnim) {
            //temporary, from laziness
            animSet.setDuration(0);
        }
        animSet.playTogether(anims.toArray(new ObjectAnimator[anims.size()]));
        animSet.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {

                if (mOnVisibleWidthChangedListener != null) {
                    mVisibleWidth = (getChildCount() * (int) ACTION_DIMENSION_PX) - (mHasOverflow ? Util.dpToPx(8) : 0);
                    mOnVisibleWidthChangedListener.onItemsMenuVisibleWidthChanged(mVisibleWidth);
                }
            }
        });
        animSet.start();
    }
public void showIfRoomItems(boolean withAnim) {

        if (mMenu == -1) {
            return;
        }

        cancelChildAnimListAndClear();

        if (mMenuItems.isEmpty()) {
            return;
        }

        anims = new ArrayList<>();

        for (int i = 0; i < getChildCount(); i++) {

            final View currentView = getChildAt(i);

            //reset all the action item views
            if (i < mActionItems.size()) {
                ImageView action = (ImageView) currentView;
                final MenuItem actionItem = mActionItems.get(i);
                action.setImageDrawable(actionItem.getIcon());
                Util.setIconColor(action, mActionIconColor);
                action.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        if (mMenuCallback != null) {
                            mMenuCallback.onMenuItemSelected(mMenuBuilder, actionItem);
                        }
                    }
                });
            }

            Interpolator interpolator = new DecelerateInterpolator();
            if (i > (mActionShowAlwaysItems.size() - 1)) {
                interpolator = new LinearInterpolator();
            }

            currentView.setClickable(true);

            //simply animate all properties of all action item views back to their default/visible state
            anims.add(ViewPropertyObjectAnimator.animate(currentView)
                    .addListener(new AnimatorListenerAdapter() {
                        @Override
                        public void onAnimationEnd(Animator animation) {

                            currentView.setTranslationX(0);
                        }
                    })
                    .setInterpolator(interpolator)
                    .translationX(0).get());
            anims.add(ViewPropertyObjectAnimator.animate(currentView)
                    .addListener(new AnimatorListenerAdapter() {
                        @Override
                        public void onAnimationEnd(Animator animation) {

                            currentView.setScaleX(1.0f);
                        }
                    })
                    .setInterpolator(interpolator)
                    .scaleX(1.0f).get());
            anims.add(ViewPropertyObjectAnimator.animate(currentView)
                    .addListener(new AnimatorListenerAdapter() {
                        @Override
                        public void onAnimationEnd(Animator animation) {

                            currentView.setScaleY(1.0f);
                        }
                    })
                    .setInterpolator(interpolator)
                    .scaleY(1.0f).get());
            anims.add(ViewPropertyObjectAnimator.animate(currentView)
                    .addListener(new AnimatorListenerAdapter() {
                        @Override
                        public void onAnimationEnd(Animator animation) {

                            currentView.setAlpha(1.0f);
                        }
                    })
                    .setInterpolator(interpolator)
                    .alpha(1.0f).get());
        }

        if(anims.isEmpty()){
            return;
        }

        AnimatorSet animSet = new AnimatorSet();
        if (!withAnim) {
            //temporary, from laziness
            animSet.setDuration(0);
        }
        animSet.playTogether(anims.toArray(new ObjectAnimator[anims.size()]));
        animSet.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {

                if (mOnVisibleWidthChangedListener != null) {
                    mVisibleWidth = (getChildCount() * (int) ACTION_DIMENSION_PX) - (mHasOverflow ? Util.dpToPx(8) : 0);
                    mOnVisibleWidthChangedListener.onItemsMenuVisibleWidthChanged(mVisibleWidth);
                }
            }
        });
        animSet.start();
    }
Shows all the menu items that were hidden by hideIfRoomItems(boolean withAnim)

@param withAnim