public void reset(int menu, int availWidth) {
        mMenu = menu;
        if (mMenu == -1) {
            return;
        }

        mActionShowAlwaysItems = new ArrayList<>();
        mActionItems = new ArrayList<>();
        mMenuItems = new ArrayList<>();
        mMenuBuilder = new MenuBuilder(getContext());
        mMenuPopupHelper = new MenuPopupHelper(getContext(), mMenuBuilder, this);

        //clean view and re-inflate
        removeAllViews();
        getMenuInflater().inflate(mMenu, mMenuBuilder);

        mMenuItems = mMenuBuilder.getActionItems();
        mMenuItems.addAll(mMenuBuilder.getNonActionItems());

        Collections.sort(mMenuItems, new Comparator<MenuItemImpl>() {
            @Override
            public int compare(MenuItemImpl lhs, MenuItemImpl rhs) {
                return ((Integer) lhs.getOrder()).compareTo(rhs.getOrder());
            }
        });

        List<MenuItemImpl> localActionItems = filter(mMenuItems, new MenuItemImplPredicate() {
            @Override
            public boolean apply(MenuItemImpl menuItem) {
                return menuItem.getIcon() != null && (menuItem.requiresActionButton() || menuItem.requestsActionButton());
            }
        });


        int availItemRoom = availWidth / (int) ACTION_DIMENSION_PX;

        //determine if to show overflow menu
        boolean addOverflowAtTheEnd = false;
        if (((localActionItems.size() < mMenuItems.size()) || availItemRoom < localActionItems.size())) {
            addOverflowAtTheEnd = true;
            availItemRoom--;
        }

        ArrayList<Integer> actionItemsIds = new ArrayList<>();
        if (availItemRoom > 0) {
            for (int i = 0; i < localActionItems.size(); i++) {

                final MenuItemImpl menuItem = localActionItems.get(i);
                if (menuItem.getIcon() != null) {

                    ImageView action = createActionView();
                    action.setContentDescription(menuItem.getTitle());
                    action.setImageDrawable(menuItem.getIcon());
                    Util.setIconColor(action, mActionIconColor);
                    addView(action);
                    mActionItems.add(menuItem);
                    actionItemsIds.add(menuItem.getItemId());

                    action.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {

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

                    availItemRoom--;
                    if (availItemRoom == 0) {
                        break;
                    }
                }
            }
        }

        mHasOverflow = addOverflowAtTheEnd;
        if (addOverflowAtTheEnd) {

            ImageView overflowAction = getOverflowActionView();
            overflowAction.setImageResource(R.drawable.ic_more_vert_black_24dp);
            Util.setIconColor(overflowAction, mOverflowIconColor);
            addView(overflowAction);

            overflowAction.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mMenuPopupHelper.show();
                }
            });

            mMenuBuilder.setCallback(mMenuCallback);
        }

        //remove all menu items that will be shown as icons (the action items) from the overflow menu
        for (int id : actionItemsIds) {
            mMenuBuilder.removeItem(id);
        }
        actionItemsIds = null;

        if (mOnVisibleWidthChangedListener != null) {
            mVisibleWidth = ((int) ACTION_DIMENSION_PX * getChildCount()) - (mHasOverflow ? Util.dpToPx(8) : 0);
            mOnVisibleWidthChangedListener.onItemsMenuVisibleWidthChanged(mVisibleWidth);
        }
    }
public void reset(int menu, int availWidth) {
        mMenu = menu;
        if (mMenu == -1) {
            return;
        }

        mActionShowAlwaysItems = new ArrayList<>();
        mActionItems = new ArrayList<>();
        mMenuItems = new ArrayList<>();
        mMenuBuilder = new MenuBuilder(getContext());
        mMenuPopupHelper = new MenuPopupHelper(getContext(), mMenuBuilder, this);

        
        removeAllViews();
        getMenuInflater().inflate(mMenu, mMenuBuilder);

        mMenuItems = mMenuBuilder.getActionItems();
        mMenuItems.addAll(mMenuBuilder.getNonActionItems());

        Collections.sort(mMenuItems, new Comparator<MenuItemImpl>() {
            @Override
            public int compare(MenuItemImpl lhs, MenuItemImpl rhs) {
                return ((Integer) lhs.getOrder()).compareTo(rhs.getOrder());
            }
        });

        List<MenuItemImpl> localActionItems = filter(mMenuItems, new MenuItemImplPredicate() {
            @Override
            public boolean apply(MenuItemImpl menuItem) {
                return menuItem.getIcon() != null && (menuItem.requiresActionButton() || menuItem.requestsActionButton());
            }
        });


        int availItemRoom = availWidth / (int) ACTION_DIMENSION_PX;

        
        boolean addOverflowAtTheEnd = false;
        if (((localActionItems.size() < mMenuItems.size()) || availItemRoom < localActionItems.size())) {
            addOverflowAtTheEnd = true;
            availItemRoom--;
        }

        ArrayList<Integer> actionItemsIds = new ArrayList<>();
        if (availItemRoom > 0) {
            for (int i = 0; i < localActionItems.size(); i++) {

                final MenuItemImpl menuItem = localActionItems.get(i);
                if (menuItem.getIcon() != null) {

                    ImageView action = createActionView();
                    action.setContentDescription(menuItem.getTitle());
                    action.setImageDrawable(menuItem.getIcon());
                    Util.setIconColor(action, mActionIconColor);
                    addView(action);
                    mActionItems.add(menuItem);
                    actionItemsIds.add(menuItem.getItemId());

                    action.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {

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

                    availItemRoom--;
                    if (availItemRoom == 0) {
                        break;
                    }
                }
            }
        }

        mHasOverflow = addOverflowAtTheEnd;
        if (addOverflowAtTheEnd) {

            ImageView overflowAction = getOverflowActionView();
            overflowAction.setImageResource(R.drawable.ic_more_vert_black_24dp);
            Util.setIconColor(overflowAction, mOverflowIconColor);
            addView(overflowAction);

            overflowAction.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mMenuPopupHelper.show();
                }
            });

            mMenuBuilder.setCallback(mMenuCallback);
        }

        
        for (int id : actionItemsIds) {
            mMenuBuilder.removeItem(id);
        }
        actionItemsIds = null;

        if (mOnVisibleWidthChangedListener != null) {
            mVisibleWidth = ((int) ACTION_DIMENSION_PX * getChildCount()) - (mHasOverflow ? Util.dpToPx(8) : 0);
            mOnVisibleWidthChangedListener.onItemsMenuVisibleWidthChanged(mVisibleWidth);
        }
    }
public void reset ( int menu , int availWidth ) { mMenu = menu ; if ( mMenu == - 1 ) { return ; } mActionShowAlwaysItems = new ArrayList <> ( ) ; mActionItems = new ArrayList <> ( ) ; mMenuItems = new ArrayList <> ( ) ; mMenuBuilder = new MenuBuilder ( getContext ( ) ) ; mMenuPopupHelper = new MenuPopupHelper ( getContext ( ) , mMenuBuilder , this ) ; //clean view and re-inflate removeAllViews ( ) ; getMenuInflater ( ) . inflate ( mMenu , mMenuBuilder ) ; mMenuItems = mMenuBuilder . getActionItems ( ) ; mMenuItems . addAll ( mMenuBuilder . getNonActionItems ( ) ) ; Collections . sort ( mMenuItems , new Comparator < MenuItemImpl > ( ) { @ Override public int compare ( MenuItemImpl lhs , MenuItemImpl rhs ) { return ( ( Integer ) lhs . getOrder ( ) ) . compareTo ( rhs . getOrder ( ) ) ; } } ) ; List < MenuItemImpl > localActionItems = filter ( mMenuItems , new MenuItemImplPredicate ( ) { @ Override public boolean apply ( MenuItemImpl menuItem ) { return menuItem . getIcon ( ) != null && ( menuItem . requiresActionButton ( ) || menuItem . requestsActionButton ( ) ) ; } } ) ; int availItemRoom = availWidth / ( int ) ACTION_DIMENSION_PX ; //determine if to show overflow menu boolean addOverflowAtTheEnd = false ; if ( ( ( localActionItems . size ( ) < mMenuItems . size ( ) ) || availItemRoom < localActionItems . size ( ) ) ) { addOverflowAtTheEnd = true ; availItemRoom -- ; } ArrayList < Integer > actionItemsIds = new ArrayList <> ( ) ; if ( availItemRoom > 0 ) { for ( int i = 0 ; i < localActionItems . size ( ) ; i ++ ) { final MenuItemImpl menuItem = localActionItems . get ( i ) ; if ( menuItem . getIcon ( ) != null ) { ImageView action = createActionView ( ) ; action . setContentDescription ( menuItem . getTitle ( ) ) ; action . setImageDrawable ( menuItem . getIcon ( ) ) ; Util . setIconColor ( action , mActionIconColor ) ; addView ( action ) ; mActionItems . add ( menuItem ) ; actionItemsIds . add ( menuItem . getItemId ( ) ) ; action . setOnClickListener ( new OnClickListener ( ) { @ Override public void onClick ( View v ) { if ( mMenuCallback != null ) { mMenuCallback . onMenuItemSelected ( mMenuBuilder , menuItem ) ; } } } ) ; availItemRoom -- ; if ( availItemRoom == 0 ) { break ; } } } } mHasOverflow = addOverflowAtTheEnd ; if ( addOverflowAtTheEnd ) { ImageView overflowAction = getOverflowActionView ( ) ; overflowAction . setImageResource ( R . drawable . ic_more_vert_black_24dp ) ; Util . setIconColor ( overflowAction , mOverflowIconColor ) ; addView ( overflowAction ) ; overflowAction . setOnClickListener ( new OnClickListener ( ) { @ Override public void onClick ( View v ) { mMenuPopupHelper . show ( ) ; } } ) ; mMenuBuilder . setCallback ( mMenuCallback ) ; } //remove all menu items that will be shown as icons (the action items) from the overflow menu for ( int id : actionItemsIds ) { mMenuBuilder . removeItem ( id ) ; } actionItemsIds = null ; if ( mOnVisibleWidthChangedListener != null ) { mVisibleWidth = ( ( int ) ACTION_DIMENSION_PX * getChildCount ( ) ) - ( mHasOverflow ? Util . dpToPx ( 8 ) : 0 ) ; mOnVisibleWidthChangedListener . onItemsMenuVisibleWidthChanged ( mVisibleWidth ) ; } }
Resets the the view to fit into a new
available width.
<p/>
<p>This clears and then re-inflates the menu items
, removes all of its associated action views, and re-creates
the menu and action items to fit in the new width.</p>

@param availWidth the width available for the menu to use. If
there is room, menu items that are flagged with
android:showAsAction="ifRoom" or android:showAsAction="always"
will show as actions.
Resets the the view to fit into a new available width . <p / > <p > This clears and then re - inflates the menu items removes all of its associated action views and re - creates the menu and action items to fit in the new width . < / p >