В моей деятельности у меня есть список объектов заказов, которые я хотел бы отобразить в PopupMenu, в котором есть SubMenu для каждого уникального клиента, содержащего их заказы.Я создаю PopupMenu в OnCreate, и кнопка, определенная в XML, вызывает этот метод, чтобы открыть его:
public void openOrderMenu(View v){
orderMenu.show();
}
В эмуляторе он работает, как и ожидалось, у меня есть PopupMenu клиентов, и при нажатии кнопкипокупатель появляется SubMenu, содержащий их заказы.Однако на реальном телефоне PopupMenu открывается, но за ним сидит идентичный PopupMenu, перекрывающий одну сторону.Существует также задержка при открытии меню и подменю.
Кто-нибудь видел эту проблему раньше?
Код для создания меню вызывается только один раз в 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());
}
}