在iPhone和iPad标签和SpanLabel没有正确对齐(略有差异)

时间:2018-06-12 07:44:04

标签: ios label codenameone

我在显示标签正确对齐时出现问题。请指教请查看截图和代码。右侧截图指的是android设备是正确的显示方式,并从iphone中留下一个。

代码:

Container table = new Container(new TableLayout(6, 2));                    
Label firstNameLbl = new Label("First Name ");
firstNameLbl.setUIID("StringLbl");
table.add(firstNameLbl).add(givenName);
Label lastNameLbl = new Label("Last Name ");
lastNameLbl.setUIID("StringLbl");
table.add(lastNameLbl).add(surname);
Label refNumberLbl = new Label("Ref. Number ");
refNumberLbl.setUIID("StringLbl");
table.add(refNumberLbl).add(refnum);
Label cellPhoneLbl = new Label("Cell Phone ");
cellPhoneLbl.setUIID("StringLbl");
Label homePhoneLbl = new Label("Home Phone ");
homePhoneLbl.setUIID("StringLbl");
Label workPhoneLbl = new Label("Work Phone ");
workPhoneLbl.setUIID("StringLbl");
SpanLabel cellPhoneSpan = new SpanLabel(cellPhone);
cellPhoneSpan.setUIID("SpanLabel");
SpanLabel homePhoneSpan = new SpanLabel(homePhone);
homePhoneSpan.setUIID("SpanLabel");
SpanLabel workPhoneSpan = new SpanLabel(workPhone);
workPhoneSpan.setUIID("SpanLabel");
table.add(cellPhoneLbl).add(cellPhoneSpan).add(homePhoneLbl).
add(homePhoneSpan).add(workPhoneLbl).add(workPhoneSpan);
setSameHeight(cellPhoneLbl, cellPhoneSpan, homePhoneLbl, homePhoneSpan, workPhoneLbl, workPhoneSpan);  

Android屏幕截图 Android screenshot iPhone屏幕截图 iPhone Screenshot

iphone screenshot Android Screenshot

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

cellPhoneSpan.setUIID("Container");
cellPhoneSpan.setTextUIID("StringLbl");

SpanLabel有点复杂,所以你可能会无意中双重填充这个类。 SpanLabel实际上是Container,其TextArea样式看起来像Label。因此,您可能会从外部Container和内部TextArea填充。

使用您可以在模拟器中启动的Component Inspector工具很容易发现这些内容。您可以查看层次结构并查看树中每个组件的UIID,填充,边距等。

答案 1 :(得分:0)

我建议您使用故事板进行UI。但如果不是选项。尝试可视化布局。或者为每个字段设置背景颜色。我怀疑是Work标签中的一个是顶部对齐但是span标签是底部对齐的。纠正对齐应该可以解决你所面临的问题。