2011-09-19 47 views
0

我需要将CheckboxField与“管理连接”对话框中的固定文本(在Blackberry上)右侧对齐。 的代码是:对齐黑莓上的复选框

final HorizontalFieldManager hfm = new HorizontalFieldManager(USE_ALL_WIDTH); 
hfm.add(new LabelField("Test me please", LabelField.ELLIPSIS | FIELD_LEFT | FIELD_VCENTER | USE_ALL_WIDTH)); 
cbx = new CheckboxField(null, false, FIELD_RIGHT | CheckboxField.NO_USE_ALL_WIDTH); 
hfm.add(cbx); 

我试过“USE_ALL_WIDTH”,“NO_USE_ALL_WIDTH”和类似标志的各种组合,但我仍然不能得到我想要的:文一路到左侧,和复选框一路向右。 如果标签设置为USE_ALL_WIDTH,复选框消失,如果未设置,复选框显示在文本旁边(不在hfm的右侧)。

回答

3

使用下面的代码,这将解决您的问题。

HorizontalFieldManager hfm = new HorizontalFieldManager(Field.USE_ALL_HEIGHT); 
LabelField lblShow = new LabelField("Test me please ", Field.FIELD_LEFT); 
CheckboxField cbShow = new CheckboxField("", false, CheckboxField.FIELD_RIGHT); 
VerticalFieldManager vfmLeft = new VerticalFieldManager(); 
VerticalFieldManager vfmRight = new VerticalFieldManager(Field.USE_ALL_WIDTH); 
vfmLeft.add(lblShow); 
vfmRight.add(cbShow);  
hfm.add(vfmLeft); 
hfm.add(vfmRight); 
add(hfm); 
+0

谢谢,我偶然发现了一些类似的东西,它工作。 –

+0

找到了一个更好的解决方案:在位图上绘制完整的复选框,然后将位图剪切成两部分,并在画布上翻转左侧和右侧部分。 –

+0

'vfmLeft'在这里是多余的。您可以直接将标签添加到水平字段管理器,即'hfm.add(lblShow)'。 – mrvincenzo

3

使用此样式位将复选框对齐到右侧。

private static final long checkBoxStyle = 134217728; 

add(new CheckboxField("test " , false, checkBoxStyle | USE_ALL_WIDTH)); 
+0

它适用于我 –

+0

顺便说一句,该值只是0x8000000(即设置最左边的位) –

+0

这只是可从BlackBerry API 7.0.0获得的CheckboxField.NO_USE_ALL_WIDTH值,它不适用于较早的设备。 –