Ежевика, устанавливающая положение RichtextField в FullScreen - PullRequest
0 голосов
/ 20 августа 2009

Я пишу приложение в BlackBerry, в котором я хочу сделать несколько пользовательских рисований в верхней части экрана в методе рисования FullScreen, и в то же время я хочу, чтобы RichtextField располагался в нижней части экрана. , Я пытался использовать методы setPosition в классе Field, но безрезультатно. Итак, как мне установить положение RichtextField, добавляемого в класс FullScreen?

Ответы [ 2 ]

1 голос
/ 21 августа 2009

Вы можете использовать SpacerField для этой цели:

class SpacerField extends Field {

  int localWidth, localHeight;

  SpacerField(int width, int height) {
    super(Field.NON_FOCUSABLE);
    localWidth = width;
    localHeight = height;
  }

  protected void layout(int width, int height) {
    // TODO Auto-generated method stub
    setExtent(localWidth, localHeight);
  }


  protected void paint(Graphics graphics) {

  }


  public int getPreferredWidth() {
    return localWidth;
  }

  public int getPreferredHeight() {
    return localHeight;
  }
}

и добавьте его на экран перед вашим RichTextField. Обязательно укажите подходящие width (Display.getWidth()?) И height при построении SpacerField.

Примечание: Я нашел код на этом обсуждении на форуме несколько месяцев назад, когда мне нужно было сделать нечто подобное.

1 голос
/ 20 августа 2009

Лучший способ позиционирования объектов - расширить менеджер и использовать его для позиционирования и определения размеров объектов так, как вы хотите. Проверьте документацию для net.rim.device.api.ui.Manager и net.rim.device.api.ui.Field для получения информации о том, как менеджер контролирует своих детей.

...