我当前的主屏幕看起来像:
每行显示的当前代码如下:
RichTextField WeFix1 = new RichTextField("• Computer & Laptop", RichTextField.TEXT_JUSTIFY_HCENTER);
VFMTitle1 = new VerticalFieldManager(Field.USE_ALL_WIDTH| Field.NON_FOCUSABLE);
HFMTitle1 = new HorizontalFieldManager(FIELD_HCENTER);
HFMTitle1.add(WeFix1);
VFMTitle1.add(HFMTitle1);
add(VFMTitle21);
但需要将它放在一条直线上:
答案 0 :(得分:2)
有很多种可能性。您可以调整包含服务列表的容器的边距。您还可以制作自定义字段管理器等等。
选项1:调整保证金
VerticalFieldManager vfmServices = new VerticalFieldManager(VerticalFieldManager.USE_ALL_WIDTH);
vfmServices.add(new RichTextField("• Computer & Laptop"));
vfmServices.add(new RichTextField("• Modem / Router / Switches"));
vfmServices.add(new RichTextField("• Printer / Scanner"));
vfmServices.add(new RichTextField("• Tablet"));
final int horizontalMargin = 30;
vfmServices.setMargin(0, horizontalMargin, 0, horizontalMargin);
add(vfmServices);
选项2:使用自定义字段管理器
VerticalFieldManager vfmServiceLists = new VerticalFieldManager(VerticalFieldManager.USE_ALL_WIDTH);
vfmServiceLists.add(new RichTextField("• Computer & Laptop"));
vfmServiceLists.add(new RichTextField("• Modem / Router / Switches"));
vfmServiceLists.add(new RichTextField("• Printer / Scanner"));
vfmServiceLists.add(new RichTextField("• Tablet"));
Manager mListContainer = new Manager(Manager.USE_ALL_WIDTH) {
final int horizontalMargin = 30;
protected void sublayout(int width, int height) {
// this manager designed to contain only one list container.
if (getFieldCount() == 1) {
Field child = getField(0);
layoutChild(child, width - 2 * horizontalMargin, height);
// adjust manager height.
height = child.getHeight();
setPositionChild(child, horizontalMargin, 0);
}
setExtent(width, height);
}
};
mListContainer.add(vfmServiceLists);
add(mListContainer);
[稍后添加]
在评论中建议使用alishaik786,如果您使用LabelField而不是RichTextField,则可以检查以下代码,该代码不使用任何边距:
VerticalFieldManager vfmServiceLists = new VerticalFieldManager();
vfmServiceLists.add(new LabelField("• Computer & Laptop"));
vfmServiceLists.add(new LabelField("• Modem / Router / Switches"));
vfmServiceLists.add(new LabelField("• Printer / Scanner"));
vfmServiceLists.add(new LabelField("• Tablet"));
Manager mListContainer = new Manager(Manager.USE_ALL_WIDTH) {
protected void sublayout(int width, int height) {
// this manager designed to contain only one list container.
if (getFieldCount() == 1) {
Field child = getField(0);
layoutChild(child, width, height);
// adjust manager height.
height = child.getHeight();
setPositionChild(child, (width - child.getWidth()) / 2, 0);
}
setExtent(width, height);
}
};
mListContainer.add(vfmServiceLists);
add(mListContainer);
答案 1 :(得分:1)
最好使用LabelField而不是RichTextField。 如果您只想在RichTextField上显示结果,则以下代码不适合您;然后尝试使用我们的“Rupak”代码;
以下代码使用 LabelField 代替 RichTextField ;
public class Abc extends MainScreen
{
VerticalFieldManager vertical;
Font font=Font.getDefault().derive(Font.BOLD, 18),small_font=Font.getDefault().derive(Font.PLAIN, 15);
LabelField labelField,labelFieldTwo;
public Abc()
{
createGUI();
}
private void createGUI()
{
vertical=new VerticalFieldManager(USE_ALL_WIDTH);
vertical.setBackground(BackgroundFactory.createSolidBackground(Color.GREEN));
HorizontalFieldManager hor=new HorizontalFieldManager(Field.FIELD_HCENTER);
hor.add(new LabelField(" We Fix ", Field.NON_FOCUSABLE));
hor.setFont(font);
hor.setPadding(5, 0, 5, 0);
vertical.add(hor);
HorizontalFieldManager hr=new HorizontalFieldManager(Field.FIELD_HCENTER);
hr.add(new LabelField("."));
hr.add(new LabelField("Computer Science & Laptop", Field.NON_FOCUSABLE));
hr.setFont(small_font);
vertical.add(hr);
HorizontalFieldManager hr1=new HorizontalFieldManager(Field.FIELD_HCENTER);
hr1.add(new LabelField("."));
hr1.add(new LabelField("Modem/Router/Switches", Field.NON_FOCUSABLE));
hr1.setFont(small_font);
vertical.add(hr1);
//------------------- Up to now you want like this; and you can do like this type also like left align and right align;
HorizontalFieldManager hr2=new HorizontalFieldManager(Field.FIELD_LEFT);
hr2.add(new LabelField("."));
hr2.add(new LabelField("Printer/Scanner", Field.NON_FOCUSABLE));
hr2.setFont(small_font);
vertical.add(hr2);
HorizontalFieldManager hr3=new HorizontalFieldManager(Field.FIELD_LEFT);
hr3.add(new LabelField("."));
hr3.add(new LabelField("Tablet", Field.NON_FOCUSABLE));
hr3.setFont(small_font);
vertical.add(hr3);
HorizontalFieldManager hr4=new HorizontalFieldManager(Field.FIELD_RIGHT);
hr4.add(new LabelField("."));
hr4.add(new LabelField("Printer/Scanner", Field.NON_FOCUSABLE));
hr4.setFont(small_font);
vertical.add(hr4);
HorizontalFieldManager hr5=new HorizontalFieldManager(Field.FIELD_RIGHT);
hr5.add(new LabelField("."));
hr5.add(new LabelField("Tablet", Field.NON_FOCUSABLE));
hr5.setFont(small_font);
vertical.add(hr5);
vertical.setPadding(0, 0, 10, 0);
add(vertical);
}
}
当字段对齐中心,左右:
时,我得到了这样的结果
答案 2 :(得分:0)
试试这个..
LabelField lbl=new LabelField("• Computer & Laptop\r\n• Modem / Router / Switches\r\n•
Printer / Scanner\r\n• Tablet",LabelField.FIELD_HCENTER);