Codenameone CN1将标签图标与其文本基线对齐

Codenameone CN1将标签图标与其文本基线对齐,codenameone,Codenameone,在下面给出的示例中,有三个Label组件,每个组件都有一个图标图像。图像的边界框最小(因此图像的水平线位于底部边界)。我想对齐这些图像,使它们的水平线与文本的基线处于同一水平。我怎样才能做到这一点 编辑: 应用FlowLayout基线方法时,我得到以下结果: 注意:我故意将图像放在右侧,以显示使用了“上基线”而不是实际基线 编辑: 当我将vAlign更改为BOTTOM时,我得到以下结果: 标签不支持直接对齐,因为默认情况下,标签位于左侧时,它会将图像居中对齐。解决方案是为每个条目使用两个标签

在下面给出的示例中,有三个
Label
组件,每个组件都有一个图标图像。图像的边界框最小(因此图像的水平线位于底部边界)。我想对齐这些图像,使它们的水平线与文本的基线处于同一水平。我怎样才能做到这一点

编辑: 应用FlowLayout基线方法时,我得到以下结果:

注意:我故意将图像放在右侧,以显示使用了“上基线”而不是实际基线

编辑:

当我将vAlign更改为BOTTOM时,我得到以下结果:


标签不支持直接对齐,因为默认情况下,标签位于左侧时,它会将图像居中对齐。解决方案是为每个条目使用两个标签:

Label text = new Label("Text");
Label icon = new Label(image);
Container cnt = Container.encloseIn(new FlowLayout(LEFT, BASELINE), 
                              text, icon);

不幸的是,这种方法没有将图像与实际基线对齐。查看我编辑的postTry
新的FlowLayout(左,下)
这也不是我想要的(查看我编辑的帖子)。我认为基线只尊重文本,不适用于图像,因为它们没有基线。您可以使用接受组件维度的getBaseLine。请注意,当您执行此操作时,这些可能尚未初始化。。。如果使用流布局,请尝试传入首选尺寸标注。