代号一个应用程序在宽屏上以居中的矩形显示

时间:2018-11-26 21:16:10

标签: codenameone

给读者的提示:这个问题专门针对代号One。

由于我有同一个应用程序(Android,iOS,Javascript)的多个目标,可以在小屏幕(这是典型的用例)上运行,也可以在宽屏幕上运行,因此我必须对UI做出选择

我想简化我的生活:以纵向模式移动设备是我的主要目标,因此...所有宽屏(台式机和平板电脑)都将在屏幕中央的垂直矩形内显示该应用程序。也许这不是最好的解决方案,但它可能是有道理的。我想该居中矩形的宽度为9厘米(我的iPhone设备宽度约为7厘米,而我的Android设备宽度约为8厘米)。

那么...满足此要求的正确方法是什么?

最初,我认为我可以使用覆盖show()方法的代码创建BaseForm,在调用super.show()之前为ContentPane,LayeredPane和工具栏设置左右边距...但是这种解决方案在我看来,这是一种差劲的方法,而且会产生开销,因为在这种情况下,我需要重新计算边距并针对屏幕尺寸的每次更改重新验证BaseForm……但是,此解决方案无法与FAB或对话框。所以...这不是解决方案。

如果我可以为包含应用程序的居中矩形之外的所有空间选择背景(图像或颜色),那就太好了。

有更好的主意吗?

1 个答案:

答案 0 :(得分:1)

这可能是我们需要在系统中实现以使其无缝的内容。您选择的任何方法都需要一些工作。

如果我正在做这样的事情,我会创建一个特殊的表格,没有标题作为背景。我会给它一个特殊的自定义布局管理器,使内容居中。像这样:


pid/tid cpu%
123 20
256 8
98  31

现在只需将实际表单添加到此背景表单即可。其余的应该“按原样”工作。我认为您需要警惕某些事情,并且由于表格的嵌套,这种hack可能会产生一些副作用。但最终它应该可以工作。