Не удается выровнять поля по горизонтали на пользовательском всплывающем экране в Blackberry - PullRequest
0 голосов
/ 26 июля 2010

Чего я хочу добиться, так это иметь собственный всплывающий экран с заданными шириной и высотой.На этом экране я добавляю две кнопки, которые остаются в одном ряду и выравнивают центр по горизонтали.

public class CustomPopupScreen extends PopupScreen {

ButtonField minimizeBf;
ButtonField cancelBf;
HorizontalFieldManager hfm;

public CustomPopupScreen() {
    super(new VerticalFieldManager());
    minimizeBf = new ButtonField("Minimize", FIELD_HCENTER|Field.USE_ALL_WIDTH);
    cancelBf = new ButtonField("Cancel", FIELD_HCENTER|Field.USE_ALL_WIDTH);
    hfm = new HorizontalFieldManager(FIELD_HCENTER|Field.USE_ALL_WIDTH);
    hfm.add(minimizeBf);
    hfm.add(cancelBf);
    add(hfm);
    //add(minimizeBf);
    //add(cancelBf);
}

protected void sublayout(int width, int height) {
    // TODO Auto-generated method stub
    int xPos = 0;
    int yPos = 0;
    int sideMargin = 30;
    int screenWidth = width - (2 * sideMargin);
    int screenHeight = 100;
    layoutDelegate(screenWidth, screenHeight);
    //setPositionDelegate(0, 0);
    super.sublayout(screenWidth, screenHeight);
    setExtent(screenWidth, screenHeight);
    xPos = (width - screenWidth) / 2;
    yPos = (height - screenHeight) / 2;
    setPosition(xPos, yPos);
    // layout(screenWidth, screenHeight);
}

}

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

Может кто-нибудь сказать мне, где я неправильно набрал код?

Ответы [ 4 ]

0 голосов
/ 08 августа 2011

просто сделай один

hfm = new HorizontalFieldManager(USE_ALL_WIDTH);

Я думаю, что это может помочь вам просто попробовать.

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

Попробуйте поместить пару вертикальных полевых менеджеров, каждый из которых занимает половину доступной ширины, внутри горизонтального менеджера.затем добавьте одну кнопку к каждому из вертикальных менеджеров.

0 голосов
/ 08 августа 2011

Мне было просто интересно узнать, есть ли у меня нестандартный размер. Часто существует правильный способ сделать что-то без необходимости изменять макет вручную. Если вы поделитесь своей конечной целью, мы сможем помочь вам лучше. Поскольку кажется, что вы хотите просто сделать две кнопки из стороны в сторону. Чтобы добавить ширину и высоту, вы можете добавить проставки (add (new SeparatorField ())) к менеджерам полей и указать их ширину / высоту, а также место, где вы хотите их видеть в менеджере. Это позволило бы всем полям использовать шаблоны по умолчанию.

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

Попробуйте удалить флаг USE_ALL_WIDTH из своего размещения HorizontalFieldManager.Это должно сработать.

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