Содержимое формы Codenameone с объектами большого списка продолжает возвращаться к началу формы

#codenameone

#codenameone

Вопрос:

Я пытаюсь создать контейнер со значительным числом (> 20 или числом, превышающим высоту экрана) элементов в виде прокручиваемого списка, используя BoxLayout, это работает (т. Е. Вы можете видеть, как содержимое перемещается вверх и вниз при пролистывании), но пытаюсь просмотреть элементы внизу спискавсегда приводит к тому, что указатель содержимого возвращается к началу списка. Ожидается, что прокрутка списка вниз заблокирует представление до того места, где закончилось действие прокрутки. Я также пытался использовать TableLayout, но результаты те же. Есть идеи? приведенная ниже основная форма также имеет набор setScrollableY() .

 int rows = 30;
Form hi = new Form("Test",new BoxLayout(BoxLayout.Y_AXIS));
hi.setScrollableY(true);

Container contents = new Container(new BoxLayout(BoxLayout.Y_AXIS));
contents.setScrollableY(true);

hi.add(contents);

for (int i = 0 ; i < rows;i  )
{
    Label type = new Label("ROW " i);
    type.setName(i "");
    type.setTextPosition(Component.TOP);
    contents.addComponent(type);
}

mainform.addComponent(hi);
  

Ответ №1:

Удалите эту строку:

 contents.setScrollableY(true);
  

В иерархии может быть только один прокручиваемый контейнер, и вы выбрали Form . Когда вы вкладываете прокручиваемые объекты, жест выбирается одним из них, и это становится проблемой. В отличие от рабочего стола, где вы можете щелкнуть по определенной полосе прокрутки усовершенствованным способом, на сенсорных устройствах вы не можете выбрать конкретный контейнер для прокрутки.