Как вы ограничиваете общую высоту ListField? - PullRequest
1 голос
/ 28 марта 2011

Я пытаюсь ограничить высоту ListField, чтобы вместо перемещения вниз по экрану при перемещении по элементам вы двигались только вниз внутри поля.Так, например, заголовок на экране не исчезнет.

Мое текущее решение не работает.Высота не меняется.Он остается в любом размере, в котором находится список объектов.Код, который я использую:

_listField = new ListField()
    {
        protected void layout(int w, int h)
        {
            super.layout(w, 100);
        }
    };

Ответы [ 2 ]

2 голосов
/ 29 марта 2011

Вы можете сделать это так. В своем конструкторе MainScreen добавьте

super(NO_VERTICAL_SCROLL);

чтобы ваш главный экран не прокручивался.

создайте новый менеджер, у которого включена вертикальная прокрутка, так что только менеджер будет прокручиваться как

VerticalFieldManager listManager = new VerticalFieldManager(VERTICAL_SCROLL | VERTICAL_SCROLLBAR); 

Теперь добавьте ваши компоненты в этот менеджер, скажем, ваш ListField, как

listManager.add(your listfield object);

Если вы хотите ограничить высоту listField, то вы можете установить ограничение для listManger и добавить поле списка в manager. таким образом, список будет размещен в данной высоте Менеджера, как это

VerticalFieldManager listManager = new VerticalFieldManager(VERTICAL_SCROLL | VERTICAL_SCROLLBAR); 
{
    protected void sublayout( int maxWidth, int maxHeight )
    {
         int width = Display.getWidth();
         int height = 100;
         super.sublayout( width, height);
         setExtent( width, height);
    }
};

Надеюсь, это поможет вам.

1 голос
/ 28 марта 2011

Взгляните на размещение поля списка внутри MainScreen . Затем вы можете установить заголовок в качестве заголовка главного экрана.

...