Android PopupMenu Lag + двойной рендеринг - PullRequest
0 голосов
/ 26 марта 2019

В моей деятельности у меня есть список объектов заказов, которые я хотел бы отобразить в 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());
    }
}
...