Ради этого вопроса, давайте предположим, что я хочу ряд кнопок. Я хочу разместить столько строк в этом ряду, сколько смогу разместить на экране, но не более того. Другими словами, до тех пор, пока предполагаемая кнопка не будет обрезана или укорочен ее текст, добавьте ее.
Кажется, я должен быть в состоянии сделать что-то вроде:
HorizontalFieldManager hfm = new HorizontalFieldManager();
int remainingWidth = Display.getWidth();
int i =0;
while(true) {
ButtonField bf = new ButtonField("B " + i);
remainingWidth -= bf.getWidth();
if(remainingWidth<0)
break;
hfm.add(bf);
i++;
}
add(hfm);
Но это не работает. bf.getWidth () всегда равно 0. Я подозреваю, что это потому, что кнопка еще не была выложена, когда я запрашиваю ширину.
Так что, возможно, я мог бы просто убедиться, что кнопки всегда имеют одинаковый размер. Но это не сработает по нескольким причинам:
- Разные платформы BB по-разному выглядят для кнопок, и текст, который будет помещаться на кнопке на кривой, не помещается на кнопке в шторме.
- Темы сторонних производителей могут изменить внешний вид кнопок, поэтому я даже не могу рассчитывать на кнопки определенного размера на определенной платформе.
Нет ли способа проверить оставшееся место перед добавлением кнопки? Это похоже на довольно полезную функцию; я что-то упускаю?