首页 文章

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

提问于
浏览
2

enter image description here
我想在侧面菜单上添加 two 按钮 . One 在顶部, other 在底部,所以我添加了以下 code 但它不工作,并添加了其显示的图像 . 如何在 topbottom 上的 sidemenu 上添加按钮?

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

    没有API,它不受支持 .

    然而,就像Codename One中的任何事情一样,你有时可以将事情搞乱 .

    例如 . 像这样的东西应该作为一个黑客工作,虽然我不能保证它将永远工作,因为它依赖于 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);
    

相关问题