首页 文章

如何获得Codename One Form功能垂直滚动?

提问于
浏览
1

我的Codename One应用程序具有一个Form,其中包含3个包含文本的SpanLabel和一个包含图像和叠加层的LayeredLayout中的Container .

this.add(BorderLayout.NORTH, spanLab1);
    this.add(BorderLayout.CENTER, imageCont);
    this.add(BorderLayout.SOUTH, BoxLayout.encloseY(spanLab2, spanLabl3));

这产生以下结果:

Form not scrollable (text is irrelevant)

这并不令人满意,因为图像(显示在中央并且应该是CN1图标)没有缩放但是因为无法向下滚动而被剪切 .

我试图强制表单可滚动( this.setScrollableY(true) )但没有成功 .

我是否在某个地方犯了错误,例如我的所有内容都应放在BorderLayout.CENTER中,因为根据文档,NORTH位置专用于 Headers ,而南方位置用于可选菜单栏(我试过这个没有成功)?

或者我应该显示一个Dialog(提供Y-Scroll开箱即用)?什么是显示所有(长)内容没有图片剪切或文本重叠的正确方法?

EDIT December 22nd 2016

正如@Tizbn所写,Form的ContentPane必须在Vertical BoxLayout中 . 因此必须编写对父构造函数的调用:

super(new BoxLayout(BoxLayout.Y_AXIS));

非常感谢您的帮助!

1 回答

  • 2

    在BorderLayout中禁用垂直滚动 . 因为可以使用具有Y轴的BoxLayout并在Boxlayout中生成setScrollableY(true) . 希望它会有所帮助 .

相关问题