Используя JRE 5.0.0, устройство средства моделирования является 8520.
На экране я использую FlowFieldManager (менеджер. VERTICAL_SCROLL) и добавляющие Поля к нему для показа данных.
Когда я делаю
this.flowManager = new FlowFieldManager(Manager.VERTICAL_SCROLL);
Field field = new Field()
{
protected void paint(Graphics graphics)
{
graphics.drawTest("Test", 0, 0);
}
protected void layout(int width, int height)
{
this.setExtend(300, 300); // just testing
}
}
this.flowManager.add(field);
Экранный рендеринг правильно и 'Тест' появляются на экране.
Если с другой стороны, я попытаюсь абстрагировать это в класс под названием CustomField с теми же свойствами и добавить его к менеджеру по потоку, то рендеринга не произойдет. Отладка шоу, что устройство вводит в Объект, в функцию расположения, но не функцию краски.
Я не могу выяснить, почему функция краски не вызвана, когда я расширяю Поле. 4,5 API говорят, что расположение и краска являются единственными функциями, которые я действительно должен расширить. (getPreferredWidth и getPreferredHeight будет использоваться для вычисления размеров экрана и т.д.),
Заранее спасибо.
Если во время рисования Поле находится за пределами области отсечения, ему не будет поручено рисовать. Это действительно единственное, что я вижу в этом не так.
Так что убедитесь, что это поле не прокручено где-нибудь за экраном.