[Codename One垂直对齐多个行中的组件

问题描述 投票:1回答:2

我有一个容器,其中包含一些未知数量的组件(实际上,这些容器中我也重写了calcPreferredSize以使其具有一致的大小)。由于组件的数量可能>可以容纳在单行中的数量,因此第2行可能会溢出,等等。

我在外部容器上使用FlowLayout,该容器对一行有效。但是第二行是偏移量。

所以我想要的地方:

| .X.X.X。|| .X.X.X。|

我实际上得到了:

| .X.X.X。|| X.X.X .. |

其中X是分量,点是间距,|是容器的侧面。

最佳方法是什么?我假设FlowLayout这样做是因为第2行第一个元素的左侧边距实际上应用在顶部行上,因此没有多余的余量可以将其推离容器边界。

我尝试了GridLayout,但是我发现每行上最右边的X组件已扩展到超出我设置的首选大小。

codenameone
2个回答
0
投票
问题是确定布局,然后换行可能需要更多空间(垂直),但布局已设置。唯一的解决方案是回流(或多次),我们不“真正”支持它,因为它包含了严重的性能开销。

网格布局将所有内容设置为相同大小。表布局可能是更好的选择。我建议不要覆盖calcPreferredSize(),而只使用50%作为表列的宽度。


0
投票
因此,当流程布局将组件放置在第2行时,容器填充会迫使该组件远离“墙”。

填充和边距就像一个谜题...但是通常可以使用它来获得想要的外观-我只需要做一些思考就可以做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.