Android PopupMenu滞后+双重渲染

时间:2019-03-26 19:57:12

标签: android submenu popupmenu

在我的活动中,我有一个要显示在PopupMenu中的订单对象列表,该菜单有一个包含每个包含订单的唯一客户的SubMenu。我在OnCreate中创建PopupMenu,并且XML中定义的按钮调用此方法将其打开:

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

在仿真器中,它按预期工作,我有一个客户的PopupMenu,当单击一个客户时,会出现一个包含他们的订单的子菜单。但是,在实际的电话上,虽然会打开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());
    }
}

0 个答案:

没有答案