Я хочу разместить свое поле на указанных позициях.
Blackberry - установить положение поля на экране?
Ответы (1)
в основном, чтобы установить любую позицию в поле менеджера, вы должны:
- override sublayout
- set layoutChild for each field in manager
- установите setPositionChild для каждого поля в диспетчере
- используйте setExtend для правильного управления размером
удалена неработающая ссылка на ImageShack
Код расширенного менеджера:
class CustomVerticalManager extends VerticalFieldManager {
LabelField mText1 = new LabelField("top");
LabelField mText2 = new LabelField("bottom");
public CustomVerticalManager() {
add(mText1);
add(mText2);
}
public int getPreferredHeight() {
return Display.getHeight();
}
public int getPreferredWidth() {
return Display.getWidth();
}
protected void sublayout(int width, int height) {
width = getPreferredWidth();
height = getPreferredHeight();
int fieldWidth = mText1.getPreferredWidth();
int fieldHeight = mText1.getPreferredHeight();
layoutChild(mText1, fieldWidth, fieldHeight);
int xPos = (width - fieldWidth) >> 1;
int yPos = 0;
setPositionChild(mText1, xPos, yPos);
fieldWidth = mText2.getPreferredWidth();
fieldHeight = mText2.getPreferredHeight();
layoutChild(mText2, fieldWidth, fieldHeight);
xPos = (width - fieldWidth) >> 1;
yPos = height - fieldHeight;
setPositionChild(mText2, xPos, yPos);
setExtent(width, height);
}
}
Пример использования:
class Scr extends MainScreen {
CustomVerticalManager mManager = new CustomVerticalManager();
public Scr() {
add(mManager);
}
}
См. Также
Беспроводная связь - Как: создать собственный диспетчер макета для экрана
Blackberry - анимация макета полей
person
Maksym Gontar
schedule
19.11.2009
Хороший ответ. У RIM действительно был новый класс в API 5.0 под названием AbsoluteFieldManager, но по какой-то причине он был удален из последней бета-версии.
- person Marc Novakowski; 20.11.2009