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

时间:2017-02-20 14:23:44

标签: layout codenameone

我使用以下结果配置了布局: Layout内容窗格的FormTableLayout,其中包含一个小区。 contentpane只有一个容器作为子容器,我使用以下修改后的值设置layoutConstraint:width = 100%, height = 100%, Align = CENTER, Vertical Align = CENTER

换句话说,我以表格的组成部分为中心。

在预览中,它看起来与预期一样,但在应用程序在模拟器中运行时却看不到! 注意:

  1. 我没有修改代码中的任何样式或布局属性!因此,我不知道为什么它不像模拟器中那样。

  2. How to show two or more label at centre of the container in codenameone的方法对我不起作用!

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

    @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();
      });
    }
    
  4. preview running app in simulator

1 个答案:

答案 0 :(得分:2)

将表单的布局设置为BorderLayout并检查Absolute Center,然后在表单上添加一个容器,其布局约束设置为Center。为此容器指定BoxLayout Y布局,并在其中添加所有其他组件。

如果这种方法对您不起作用,那么您必须手工编写表单并将其设置为new BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER)