How to prevent popup menu from closing on checkbox click

前端 未结 6 1965
無奈伤痛
無奈伤痛 2020-12-06 11:30

I search a lot on net but there is nothing about preventing popup menu from closing.

Whenever i click on checkbox item or any other popup menu item, popup menu dismi

6条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-06 12:18

    Using popupMenu.show() to immediately re-show the popup menu does not work correctly with checkable menu items when changing their checked states.

    Here a method that prevents closing the popup menu in the first place. Make sure that onMenuItemClick returns false.

    popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
    
            item.setChecked(!item.isChecked());
    
            // Do other stuff
    
            // Keep the popup menu open
            item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
            item.setActionView(new View(context));
            item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
                @Override
                public boolean onMenuItemActionExpand(MenuItem item) {
                    return false;
                }
    
                @Override
                public boolean onMenuItemActionCollapse(MenuItem item) {
                    return false;
                }
            });
            return false;
        }
    });
    

提交回复
热议问题