Панель инструментов Blackberry UI: выравнивание полей - PullRequest
2 голосов
/ 22 мая 2010

Я занимаюсь разработкой собственного менеджера панели инструментов, но хочу настроить выравнивание полей по центру, а не по левому краю, любые советы

ниже код панели инструментов

    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 ]

2 голосов
/ 25 мая 2010

Вы можете заставить поля отображаться в центре, указав FIELD_HCENTER при создании каждого поля. Или с помощью FIELD_HCENTER при создании менеджера. В последнем случае менеджер сам будет центром, но каждое поле в нем будет отрегулировано слева. Это в основном те же конечные результаты, но при некоторых условиях они могут отображаться по-разному.

0 голосов
/ 21 июля 2010

Вы можете продолжить с позиционирования содержимого в центральном положении

например:

Когда я хочу разместить любое поле в центре экрана, тогда я делаю

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

Вы можете попробовать позиционировать вот так, если это поможет в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...