vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL);
vfm.add(new LabelField(\"horizontally centered...\",Field.FIELD_HCENTER | LabelField.FOCUSABLE));
vf
Check this code snippet. It doesn't have to be that compicated.
public final class CenterScreen extends MainScreen {
public CenterScreen() {
LabelField lbl1 = new LabelField("First and Foremost", Field.FIELD_HCENTER);
lbl1.setBorder(BorderFactory.createRoundedBorder(new XYEdges(10, 10, 10, 10),
Color.BLUE, Border.STYLE_SOLID));
LabelField lbl2 = new LabelField("Second", Field.FIELD_HCENTER);
lbl2.setBorder(BorderFactory.createRoundedBorder(new XYEdges(10, 10, 10, 10),
Color.RED, Border.STYLE_SOLID));
LabelField lbl3 = new LabelField("Last but not least", Field.FIELD_HCENTER);
lbl3.setBorder(BorderFactory.createRoundedBorder(new XYEdges(10, 10, 10, 10),
Color.GREEN, Border.STYLE_SOLID));
VerticalFieldManager vfm = new VerticalFieldManager(Field.USE_ALL_WIDTH);
vfm.add(lbl1);
vfm.add(lbl2);
vfm.add(lbl3);
add(vfm);
}
}
Resulting in
Here are the rules for alignment on BlackBerry:
HorizontalFieldManager
can only align the fields within it vertically. So when creating those fields only the following styles (also known as alignment bits) have any effect: FIELD_TOP, FIELD_VCENTER, FIELD_BOTTOM. e.g. new LabelField("My field", Field.Field_VCENTER)
HorizontalFieldManager example
VerticalFieldManager
can only align the fields within it horizontally. Only the following styles have any effect: FIELD_LEFT, FIELD_HCENTER, FIELD_RIGHT.VerticalFieldManager example
Aligning both horizontally and vertically example
Here's an example which aligns a button in the center of the screen both vertically and horizontally:
public class AlignmentScreen extends MainScreen{
public AlignmentScreen(){
//A MainScreen has a VerticalFieldManager to lay out its
//fields from top to bottom, the style bits here tell it
//to span the whole width of the screen and not to scroll
super(Manager.USE_ALL_WIDTH | Manager.NO_VERTICAL_SCROLL);
//Set the VerticalFieldManager to have a GREEN background
getMainManager().setBackground(BackgroundFactory.createSolidBackground(0xFF00FF00));
//Create a new HorizontalFieldManager which is centered horizontally
//and spans the whole height of the containing VerticalFieldManager
HorizontalFieldManager hfm = new HorizontalFieldManager(Field.FIELD_HCENTER | Manager.USE_ALL_HEIGHT);
//Set the HorizontalFieldManager's background to RED
hfm.setBackground(BackgroundFactory.createSolidBackground(0xFFFF0000));
//Create a button and center align it vertically
ButtonField button = new ButtonField("Test", Field.FIELD_VCENTER);
//Add the button to the HoriztonalFieldManager
hfm.add(button);
//Add the HorizontalFieldManager to the VerticalFieldManager
add(hfm);
}
}
The screen should look like this:
You should be able to modify the above to get your fields to align the way you want.
First add your Field
to a HorizontalFieldManager
(say hfm), then add that hfm
to the vfm
, I hope this will solve your problem:
VerticalFieldManager vfm = new VerticalFieldManager();
HorizontalFieldManager hfm = new HorizontalFieldManager(Manager.FIELD_HCENTER);
hfm.add(new LabelField("My Label"));
add(hfm);
See the following link to find An effective way of aligning fields in a VerticalFieldManager