2017-01-01 5 views
2

enter image description here Ich möchte two Schaltflächen auf Seitenmenü hinzufügen. One bei oben und other bei unten so habe ich unter code hinzugefügt, aber seine nicht funktioniert und seine angezeigte Bild hinzugefügt. wie Tasten auf sidemenu auf top und bottom hinzufügen?Wie fügen Sie Schaltflächen im Sidemenu oben und unten hinzu?

enter image description here

Toolbar addToolbar(Form f) { 


    Toolbar toolbar = new Toolbar(); 

     f.setToolbar(toolbar); 

     Container container = new Container(new BorderLayout()); 
     container.add(BorderLayout.NORTH,new Button(" north")); 
     container.add(BorderLayout.SOUTH,new Button(" south")); 
     toolbar.addComponentToSideMenu(container); 

    } 


void addToolbars(Form fs) { 
     Form f = new Form(" Test"); 
     Toolbar toolbar = new Toolbar(); 

     f.setToolbar(toolbar); 

     Container container = new Container(new BorderLayout()); 
     container.add(BorderLayout.NORTH, new Button(" north")); 
     container.add(BorderLayout.CENTER, new Button("center")); 
     container.add(BorderLayout.SOUTH, new Button(" south")); 
     toolbar.addComponentToSideMenu(container); 

     Container mySideMenuContainer = new Container() { 
      @Override 
      public void initComponent() { 

       getParent().setLayout(new GridLayout(1, 1)); 
       getParent().setScrollableY(false); 
       getParent().revalidate(); 
      } 
     }; 
     mySideMenuContainer.addComponent(container); 
     toolbar.addComponentToSideMenu(mySideMenuContainer); 
     f.show(); 
    } 

der Behälter enthält nur die Hälfte der Bildschirm als

Antwort

0

in Bild gezeigt Es gibt keine API dafür, und es wird nicht unterstützt.

Allerdings, wie alles in können Sie manchmal Dinge zusammen hacken.

z. so etwas wie dies sollte als Hack arbeiten, obwohl ich nicht garantieren kann es für immer funktionieren wird, wie es auf Implementierungsdetails der addComponentToSideMenu Methode beruht:

Container mySideMenuContainer = createSideMenuContainer() { 
    @Override 
    public void initComponent() { 
     Container p = getParent(); 
     if(!(p.getLayout() instanceof BorderLayout)) { 
      Component[] cmp = new Component[p.getComponentCount()]; 
      for(int iter = 0 ; iter < cmp.length ; iter++) { 
       cmp[iter] = p.getComponentAt(iter); 
      } 
      p.removeAll(); 
      p.setLayout(new BorderLayout()); 
      if(cmp.length == 1) { 
       p.add(BorderLayout.CENTER, cmp[0]); 
      } else { 
       p.add(BorderLayout.NORTH, cmp[0]); 
       p.add(BorderLayout.CENTER, cmp[1]); 
      } 
      p.revalidate(); 
     } 
    } 
}; 
toolbar.addComponentToSideMenu(mySideMenuContainer); 
+0

es zeigt java.lang.NullPointerException an dieser Linie mySideMenuContainer.getParent () .setLayout (new GridLayout (1, 1)); – tizbn

+0

OK Ich sehe ein Problem, reparierte den Code, um den Hack "hackischer" –

+0

zu machen Ich habe diese neuen Codes verwendet und sein ganzer Code wird oben Frage mit seinem screenshot hinzugefügt. Es deckt nur die Hälfte des Bildschirms, wie die gesamte Höhe des Bildschirms abdecken? – tizbn

Verwandte Themen