在Blackberry上向右对齐复选框

在Blackberry上向右对齐复选框,blackberry,checkbox,horizontalfieldmanager,Blackberry,Checkbox,Horizontalfieldmanager,我需要将复选框字段与固定文本(在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 Ch

我需要将复选框字段与固定文本(在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);
我尝试了“使用所有宽度”、“不使用所有宽度”和类似标志的各种组合,但我仍然无法得到我想要的:文本一直到左边,复选框一直到右边。
如果标签设置为使用所有宽度,复选框将消失,如果未设置,复选框将显示在文本附近(不在hfm的右侧)。

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

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);

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

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);

使用此样式位将复选框向右对齐

private static final long checkBoxStyle = 134217728;

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

使用此样式位将复选框向右对齐

private static final long checkBoxStyle = 134217728;

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

找到了一个更好的解决方案:在位图上画全图复选框,然后将位图一分为二,在画布上翻转左右部分进行渲染。
vfmLeft
在这里是多余的。您可以直接将标签添加到水平字段管理器,即
hfm.add(lblShow)
。找到了一个更好的解决方案:在位图上绘制全局复选框,然后将位图一分为二,并在画布上翻转左右部分进行渲染。
vfmLeft
在这里是多余的。您可以直接将标签添加到水平字段管理器,即
hfm.add(lblShow)
。顺便说一句,该值仅为0x8000000(即设置最左边的位),这只是
复选框字段。不使用所有宽度
值,可从BlackBerry API 7.0.0获得-在早期设备上不起作用。顺便说一下,该值仅为0x8000000(即设置最左边的位),这只是
复选框字段。无使用所有宽度
值,可从BlackBerry API 7.0.0获得-在早期设备上不起作用。