如何在顶部和底部的侧面菜单上添加按钮?

时间:2017-01-01 06:43:38

标签: codenameone border-layout

enter image description here我想在侧边菜单上添加two按钮。 顶部One底部的other ,因此我添加了code以下但无法正常工作及其显示的图片已添加。 如何在sidemenutop上的bottom添加按钮?

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

容器只包含一半的屏幕,如图所示

1 个答案:

答案 0 :(得分:0)

没有API,也不支持。

然而,就像Codename One中的任何内容一样,您有时可以将事情混在一起。

E.g。像这样的东西应该作为一个黑客工作,虽然我不能保证它将永远工作,因为它依赖于addComponentToSideMenu方法的实现细节:

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);