#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
. Когда вы вкладываете прокручиваемые объекты, жест выбирается одним из них, и это становится проблемой. В отличие от рабочего стола, где вы можете щелкнуть по определенной полосе прокрутки усовершенствованным способом, на сенсорных устройствах вы не можете выбрать конкретный контейнер для прокрутки.