我正在努力制作如图所示的设计:
如您所见,在屏幕的顶部栏中间有一个标题。我可以将它设置为水平中心,但如何将其设置为垂直中心?
我已经尝试过了:
覆盖水平/垂直字段管理器,使其具有垂直中心化的custon高度,但它不起作用:
VerticalFieldManager vfm = new VerticalFieldManager();
HorizontalFieldManager hfm = new HorizontalFieldManager(Field.FIELD_VCENTER){
protected void sublayout( int maxWidth, int maxHeight )
{
super.sublayout( Display.getWidth(), 50);
}
};
LabelWithCustomSize title = new LabelWithCustomSize("ENTERTAINMENT",Field.NON_FOCUSABLE,Display.getWidth(),50,30,2);
hfm.add(title);
vfm.add(hfm);
添加一个文本大小较小的空RichTextField,但fiels总是具有相同的高度。
如何在垂直中心设置文字或任何其他字段?
答案 0 :(得分:2)
您需要解决的问题是“管理器如何垂直居中,水平居中任何添加到其中的字段”。尝试为添加到Manager的N个字段解决此问题可能有点涉及但仅对于一个字段,它必须非常容易。我建议你试试这个:
VerticalFieldManager vfm = new VerticalFieldManager(){
public void sublayout( int maxWidth, int maxHeight )
{
int margin = 0;
int lheight = 0;
Field f = getField( 0 );
margin = f.getMarginBottom()+f.getMarginTop();
layoutChild(f, maxWidth-margin, maxHeight);
int w = f.getWidth();
int h = f.getHeight();
lheight = h+margin;
int x = (maxWidth - w)/2;
int y = (maxHeight -h)/2;
setPositionChild( f, x, y);
setExtent( maxWidth, lheight);
}
};
vfm.add( field);