2017-06-21 9 views
-1

Ich habe eine App mit Schublade Menü. Die apps-Architektur erfordert, dass Menüelemente dynamisch erstellt werden, sodass sie nach den entsprechenden Designstandards aussehen.Wie man dynamisch erstelltes Schubladenmenü anpasst?

Hier ist der Code, der Menü erstellt.

 private void formMainMenu() { 
     itemsByGroups = getMenuItemGroups(); 
     Menu menu = navigationView.getMenu(); 
     int groupId = 0; 
     for (Map.Entry<String, List<MainMenuUser>> entry : itemsByGroups.entrySet()) { 
      if (!entry.getKey().equals(MainMenuGroup.TOP.toString()) && 
        !entry.getKey().equals(MainMenuGroup.BOTTOM.toString())) { 
       createSubmenu(menu, groupId, entry); 
      } else { 
       createMenuItem(menu, groupId, entry); 
      } 
      groupId++; 
     } 
    } 

    private void createSubmenu(Menu menu, int groupId, Map.Entry<String, List<MainMenuUser>> entry) { 
     String subMenuHeader = entry.getKey(); 
     SubMenu subMenu = menu.addSubMenu(groupId, Menu.NONE, Menu.NONE, subMenuHeader); 

     List<MainMenuUser> menuUsers = entry.getValue(); 
     for (int i = 0; i < menuUsers.size(); i++) { 
      int order = menuUsers.get(i).getMainMenuPositionOrder(); 
      int titleId = menuUsers.get(i).getMainMenuItem().getTitleId(); 
      if (menuUsers.get(i).isEnableNow(BaseApp.getApp().getSdkConfig().getSupportedFunctionality())) { 
       subMenu.add(groupId, i, order, titleId); 
      } 
     } 
    } 

    private void createMenuItem(Menu menu, int groupId, Map.Entry<String, List<MainMenuUser>> entry) { 

     List<MainMenuUser> menuUsers = entry.getValue(); 
     for (int i = 0; i < menuUsers.size(); i++) { 
      if (menuUsers.get(i).isEnableNow(BaseApp.getApp().getSdkConfig().getSupportedFunctionality())) { 
       menu.add(groupId, i, Menu.NONE, menuUsers.get(i).getMainMenuItem().getTitleId()); 
      } 
     } 
    } 

Und so sieht es aus.

enter image description here

Meine Frage. Wie können Kopfzeilen und Artikel mithilfe von Stilen angepasst werden, um das Aussehen der Schublade je nach Geschmack des Produkts ändern zu können?

+1

hehe das ist 1.000.000th Frage markiert 'android' ... jetzt solltest du dein Glück im Lotto versuchen ;-) – pskink

Antwort

1

Ich denke, es wird einfacher für Sie, ein ListView oder ein RecylerView dort zu verwenden.

This question kann Ihnen einige Einblicke geben, wie es geht.

+0

Ogon, dyad, ya tozhe v hnure uchus! –

Verwandte Themen