所有组件都不会显示在Borderlayout.South中

时间:2016-11-24 09:45:23

标签: codenameone

我在下面的代码中复制了一个奇怪的问题。我已经在模拟器和设备中进行了测试。结果是一样的。我在容器中有26个按钮(它的布局是flowlayout),它本身位于BorderLayout的南部(表单布局)。但只能看到部分按钮。我在下面的代码中做错了什么? revalidate也没有做任何事情。

setLayout(new BorderLayout());

TextArea questionTextArea = new TextArea("1) question ..........");
Container questionContainer = new Container();
questionContainer.add(questionTextArea);

Container questionAnswerContainer = BoxLayout.encloseY(questionContainer);
add(BorderLayout.CENTER, questionAnswerContainer);

Container optionsContainer = new Container(new FlowLayout(Label.CENTER, Label.CENTER));
for (int i = 0; i < 26; i++) {
    Button optionButton = new Button("i");
    optionsContainer.add(optionButton);
}
optionsContainer.revalidate();

Button skipButton = new Button("SKIP");
Container bottomContainer = BoxLayout.encloseY(optionsContainer, skipButton);
bottomContainer.revalidate();
add(BorderLayout.SOUTH, bottomContainer);
//f.revalidate();

这里只能看到7个btns。 skipButton也不存在。为什么没有显示其他按钮?

enter image description here

1 个答案:

答案 0 :(得分:0)

请勿过多地调用<script src="js/jquery.serializeJSON.min.js"></script> </head> <body> <form name="myform" id="myform"> <div class="form-group"> <label for="fullName">Name:</label> <input type="text" name="fullName" class="form-control"> </div> <div class="form-group"> <label for="email">Email:</label> <input type="email" name="email" class="form-control"> </div> <div class="form-group"> <label for="subject">Subject:</label> <input type="text" name="subject" class="form-control"> </div> <div class="form-group"> <label for="mark">Mark:</label> <input type="number" name="mark" class="form-control"> </form> </div> <button type="submit" class="btn btn-success " id="submitform">Submit</button> <script> $(document).ready(function(){ $("#submitform").click(function(e) { var MyForm = JSON.stringify($("#myform").serializeJSON()); console.log(MyForm); $.ajax( { url : "<your url>", type: "POST", data : MyForm, }); }); }); </script> ,因为除了减慢应用程序速度外,它可能会破坏布局。它只应在整个布局完成时调用。

revalidate对于这些情况通常是不稳定的,它是问题的根源。它要求宽度太大而高度太小的优选宽度/高度,然后当它实际放入容器时,它没有给出所需的空间量。如果没有回流就会出现问题,这会显着降低性能......

解决方法是使用更加确定的布局,例如自动调整的网格布局。