2010-05-22 59 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 

你可以嘗試像這樣定位,如果它有助於你的情況。