2014-08-31 72 views
0

我一直在使用Codename One玩一段时间,但似乎无法设计出布局管理器提供的布局。我应该如何设计下面的布局?如何在Codename One中设置组件的特定宽度?

我想要一个在左侧具有特定宽度的组件,在右侧具有特定宽度的组件和一个伸展或缩小到其他两个剩余空间的中心组件。如果这是一个HTML/CSS表,这将是这样的:

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

TableLayout靠拢,但宽度只有百分比定义。 BorderLayoutGridLayout将尺寸基于最大组件的首选尺寸,但不推荐使用setPreferedSize()方法,而是建议使用setSameWidth(),但在这种情况下,似乎没有达到我需要的尺寸。

+0

问题是“为什么”您想要这么做? 像素尺寸在不同的分辨率/密度之间看起来完全不同,所以对它们进行硬编码几乎没有意义。 什么是需要它的大小保留左侧/右侧。 – 2014-09-01 05:31:05

+0

@ShaiAlmog边上的每个容器都有一个肖像,为什么我希望容器的宽度是硬编码的,以便它与图像的宽度相匹配,以便其他包含文本的组件可以知道在哪里当它到达x轴上图像的虚构边界时将其文本包裹起来。我使用带有自定义UUID的不可编辑的TextArea作为可包装文本。我设置了这个jsfiddle来说明这个场景:http://jsfiddle.net/22n2fq1e/我可以重新设计它以避免这种需求,但我想在某些情况下对布局有这种控制的优点。 – Smig 2014-09-01 11:12:30

回答

1

如果您希望组件具有合适的图像大小,只需将该图像作为图标放置在标签中,并且其首选大小将是图像+填充的大小,这应该可以完全达到您想要的效果默认。

请注意,服务器发送的图像应根据设备DPI的大小而有所不同,否则您的应用在某些设备上可能显得很荒谬。请参阅此课程以了解我们如何处理向服务器发送的图片请求:https://www.udemy.com/build-mobile-ios-apps-in-java-using-codename-one/

+0

感谢您的额外材料。 – Smig 2014-09-01 15:40:28