В моем приложении мне пришлось реализовать пользовательский компонент, который расширен от VerticalFieldManager, и этот менеджер содержит строки, которые являются HorizontalFieldManager.
Проблема в OS 4.5. LabelField слева показывает только одну строку текста. Вот код и изображения.
class Row extends HorizontalFieldManager{
private LabelField key;
private LabelField value;
public Row(String left,String right){
key = new LabelField(left + ": ",Field.NON_FOCUSABLE | Field.NON_SPELLCHECKABLE | TextField.NO_LEARNING | RichTextField.USE_TEXT_WIDTH){
public int getPreferredWidth() {
return Math.min((Display.getWidth()-20)/2,super.getPreferredWidth());
}
};
key.setPadding(0, 0, 0, 10);
key.setFont(Fonts.NORMAL);
add(key);
value = new LabelField(right,Field.NON_SPELLCHECKABLE | TextField.NO_LEARNING | Field.FOCUSABLE);
value.setPadding(0, 10, 0, 0);
value.setFont(Fonts.BOLD);
add(value);
}
public int getPreferredHeight() {
return Math.max(key.getHeight(), value.getHeight());
}
public int getPreferredWidth() {
return Display.getWidth()-20;
}
protected void sublayout(int arg0, int arg1) {
super.sublayout(arg0, arg1);
setExtent(getPreferredWidth(), getPreferredHeight());
}
}