Полевое расширение класса BlackBerry не нарисует

Используя 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 будет использоваться для вычисления размеров экрана и т.д.),

Заранее спасибо.

1
задан jlindenbaum 12 May 2010 в 22:42
поделиться

1 ответ

Если во время рисования Поле находится за пределами области отсечения, ему не будет поручено рисовать. Это действительно единственное, что я вижу в этом не так.

Так что убедитесь, что это поле не прокручено где-нибудь за экраном.

2
ответ дан 3 September 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: