Codenameone 如何在Codename One中设置组件的特定宽度?

Codenameone 如何在Codename One中设置组件的特定宽度?,codenameone,Codenameone,我已经玩了一段时间的代号一,但我似乎不能设计一个布局,我已经计划与布局经理提供。我应该如何着手设计以下布局 我希望左边有一个特定宽度的组件,右边有一个特定宽度的组件,还有一个中心组件,可以拉伸或收缩到其他两个组件留下的空间。如果这是一个html/css表,它将类似于: <td style="width:50px;"></td><td style="width:auto;"></td><td style="width:50px;"><

我已经玩了一段时间的代号一,但我似乎不能设计一个布局,我已经计划与布局经理提供。我应该如何着手设计以下布局

我希望左边有一个特定宽度的组件,右边有一个特定宽度的组件,还有一个中心组件,可以拉伸或收缩到其他两个组件留下的空间。如果这是一个html/css表,它将类似于:

<td style="width:50px;"></td><td style="width:auto;"></td><td style="width:50px;"></td>


TableLayout
接近,但宽度仅以百分比定义
BorderLayout
GridLayout
将大小基于最大组件的首选大小,但不推荐使用
setPreferedSize()
方法,建议改为使用
setSameWidth()
,但在这种情况下,这似乎并不能满足我的需要。

如果您希望某个组件的图像大小合适,只需将图像作为图标放置在标签中,其首选大小将是图像的大小+填充,默认情况下,这将为您提供所需的效果


请注意,服务器发送的图像大小应根据设备DPI的不同而有所不同,否则您的应用程序在某些设备上可能看起来很可笑。有关如何处理对服务器的映像请求,请参阅本课程:

问题是“为什么”要这样做?像素大小在不同的分辨率/密度之间看起来完全不同,因此硬编码几乎没有意义。左边/右边有什么东西需要保留尺寸。@ShaiAlmog两边在每个容器的顶部都有一幅肖像,我之所以希望对容器的宽度进行硬编码,是因为它与图像的宽度相匹配,这样,当文本到达图像在x轴上的假想边界时,下面有文本的其他组件知道在何处包装文本。我正在为可包装文本使用带有自定义UUID的不可编辑文本区域。我设置了这个JSFIDLE来说明这个场景:我可以重新设计它以避免这种需要,但我认为在某些情况下对布局进行这种控制是有好处的。谢谢您提供的额外资料。