Android: PopupMenu всегда должен открываться вниз - PullRequest
0 голосов
/ 11 февраля 2020

Мой PopupMenu в моем диалоге обрезается при открытии вверх. Есть ли способ, которым PopupMenu всегда открывается вниз в Android?

Я уже пытался установить Gravity, то есть: Gravity.TOP ...

Я также пытался установить мой диалог в полноэкранный режим.

Вот так выглядит мой код:

public void showPopupMenu(Context context,View view,final MaterialButton mbDropdown)
{
    final PopupMenu popup = new PopupMenu(context, view, Gravity.FILL);
    final List<SubMenu> submenuList = new LinkedList<>();
    // Inflate the menu from xml
    popup.inflate(R.menu.project_issue_menu);



    // Setup menu item selection

    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener()
    {
        @Override
        public boolean onMenuItemClick(MenuItem item)
        {
            List<Issue> issueList = ListingProvider.getInstance().getIssuesOfProject(item.getTitle().toString());
            SubMenu currentSubMenu = null;

            if(!item.hasSubMenu())
            {
                mbDropdown.setText(item.getTitle());
            }
            else
            {
                for(SubMenu subMenu : submenuList)
                {
                    if(subMenu.getItem().getTitle().equals(item.getTitle()))
                    {
                        subMenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
                        currentSubMenu = subMenu;
                    }
                }
                for (Issue issue : issueList)
                {
                    currentSubMenu.add(issue.getKey());
                }
            }

            return true;
        }
    });

    List<Project> projectList = ListingProvider.getInstance().getProjects();

    for (Project p : projectList)
    {
        SubMenu helpMenu = popup.getMenu().addSubMenu(p.getProjectKey());
        helpMenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        submenuList.add(helpMenu);
    }


    popup.show();
}
...