Layout 在CN1中预览和运行应用程序之间的布局组成有所不同

Layout 在CN1中预览和运行应用程序之间的布局组成有所不同,layout,codenameone,Layout,Codenameone,我配置了一个布局,结果如下: 表单的内容窗格的布局是由一个单元格组成的表格布局。contentpane只有一个容器作为子容器,我使用以下修改的值为其设置layoutConstraint:width=100%,height=100%,Align=CENTER,Vertical Align=CENTER 换句话说,我将表单的组件置于中心 在预览中,它看起来和预期的一样,但当应用程序在模拟器中运行时就不一样了! 注: 我不会修改代码中的任何样式或布局属性!因此,我不知道为什么它在模拟器中不是预期的 来

我配置了一个布局,结果如下:
表单
的内容窗格的
布局
是由一个单元格组成的
表格布局
。contentpane只有一个容器作为子容器,我使用以下修改的值为其设置layoutConstraint:
width=100%,height=100%,Align=CENTER,Vertical Align=CENTER

换句话说,我将表单的组件置于中心

在预览中,它看起来和预期的一样,但当应用程序在模拟器中运行时就不一样了! 注:

  • 我不会修改代码中的任何样式或布局属性!因此,我不知道为什么它在模拟器中不是预期的

  • 来自的方法对我不起作用

  • 这是我关于该表格的代码:

    @Override
    protected void postIntroLangSelect(Form f) {
    
      f.getTitleArea().setHidden(true);
      f.revalidate();
    
      // button configuration
      Button btnDE = findButtonDE(f);
      Button btnTR = findButtonTR(f);
    
      btnDE.addActionListener((e) -> {
         settings.setLocale(Lang.GERMAN);
         showNextForm();
      });      
      btnTR.addActionListener((e) -> {
        settings.setLocale(Lang.TURKISH);
        showNextForm();
      });
    }
    

  • 将表单的布局设置为
    BorderLayout
    ,并检查
    绝对中心
    ,然后在表单上添加一个容器,其布局约束设置为
    中心
    。给这个容器一个
    boxy布局
    布局,并在其中添加所有其他组件


    如果这种方法对您不起作用,那么您必须手工编写表单代码,并将其布局设置为新的BorderLayout(BorderLayout.CENTER\u BEHAVIOR\u CENTER)

    谢谢,这对我很有效!我错过了检查
    绝对中心
    。我仍然很好奇为什么我的方法不起作用,因为它在预览中正确显示了…我在这里猜测,因为有很多细微差别,但您是否在表中定义了一行和一列?如果不是的话,您可能创建了占据整个屏幕的两行。@ShaiAlmog是的,我创建了。我设置了一个只有一行和一列的表。这会以某种方式改变吗?例如,如果您使用添加元素的GUI builder,然后在删除旧元素之前添加新元素。。。