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,然后在删除旧元素之前添加新元素。。。