Задержка всплывающего меню Android двойной рендеринг

#android #submenu #popupmenu

#Android #подменю #всплывающее меню

Вопрос:

В моей деятельности у меня есть список объектов заказа, которые я хотел бы отобразить во всплывающем меню, в котором есть подменю для каждого уникального клиента, содержащее их заказы. Я создаю всплывающее меню в onCreate, и кнопка, определенная в XML, вызывает этот метод, чтобы открыть его:

  public void openOrderMenu(View v){
        orderMenu.show();
 }
  

В эмуляторе все работает как ожидалось, у меня есть всплывающее меню клиентов, и при нажатии на клиента появляется подменю, содержащее их заказы. Однако на реальном телефоне всплывающее меню открывается, но за ним находится идентичное всплывающее меню, перекрывающееся с одной стороны. Также возникает задержка при открытии меню и подменю.

Кто-нибудь сталкивался с этой проблемой раньше?

Код для создания меню вызывается только один раз в onCreate:

 private void populateOrderMenu(){
    orderMenu = new PopupMenu(this, findViewById(R.id.open_order_menu));
    Menu items = orderMenu.getMenu();
    HashMap<String, SubMenu> customerOrders = new HashMap<>();
    for(Order o : orders){
        String customer = o.getCustomer().getName();
        SubMenu customerSubMenu = customerOrders.get(customer);
        if(customerSubMenu == null){
            customerSubMenu = items.addSubMenu(customer);
            customerOrders.put(customer, customerSubMenu);
        }
        customerSubMenu.add(o.getName());
    }
}