#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());
}
}