2010-05-22 103 views
2

我正在开发自定义工具栏经理,但我想调整的字段排列为中心不是左对齐,任何意见黑莓UI工具栏:字段对齐

下面

是工具栏的代码

package galaxy.bb.ui.container; 

import net.rim.device.api.ui.Color; 
import net.rim.device.api.ui.Graphics; 
import net.rim.device.api.ui.XYEdges; 
import net.rim.device.api.ui.container.HorizontalFieldManager; 
import net.rim.device.api.ui.decor.Background; 
import net.rim.device.api.ui.decor.BackgroundFactory; 
import net.rim.device.api.ui.decor.Border; 
import net.rim.device.api.ui.decor.BorderFactory; 

public class ToolBarManager extends HorizontalFieldManager { 
private int bgColor = Color.BLACK; 
private int borderColor = Color.WHITE; 
private int borderStyle= Border.STYLE_FILLED; 

public ToolBarManager(){ 
    super(USE_ALL_WIDTH); 
    } 
public ToolBarManager(int bgColor) { 
    super(USE_ALL_WIDTH); 
    this.bgColor = bgColor; 
} 
public ToolBarManager(int bgColor, int borderStyle) { 
    super(USE_ALL_WIDTH); 
    this.bgColor = bgColor; 
    this.borderStyle = borderStyle; 
} 


public int getBgColor() { 
    return bgColor; 
} 

public void setBgColor(int bgColor) { 
    this.bgColor = bgColor; 
} 


public int getBorderColor() { 
    return borderColor; 
} 

public void setBorderColor(int borderColor) { 
    this.borderColor = borderColor; 
} 

public int getBorderStyle() { 
    return borderStyle; 
} 

public void setBorderStyle(int borderStyle) { 
    this.borderStyle = borderStyle; 
} 

protected void paint(Graphics graphics) { 
    super.paint(graphics); 
    XYEdges padding = new XYEdges(5, 5, 5, 5); 

    Border roundedBorder = BorderFactory.createRoundedBorder(padding, 
      borderColor, borderStyle); 
    this.setBorder(roundedBorder); 
    Background bg = BackgroundFactory.createSolidBackground(bgColor); 
    this.setBackground(bg); 

} 

} 

回答

2

在创建每个字段时,您可以通过指定FIELD_HCENTER来强制字段显示在中心。或者在创建管理器时使用FIELD_HCENTER。在后一种情况下,经理将以自己为中心,但其中的每个领域都将被左侧调整。它的结果大部分是相同的,但在某些情况下它可能会以不同的方式显示。

0

您可以在中锋位置

与内容的定位继续为例如:

当我想放置的任何字段在屏幕的中央,然后我做

(Display.getWidth()-field.getWidth())/2 

你可以尝试像这样定位,如果它有助于你的情况。