Codenameone 具有大型列表对象的表单内容不断弹回表单顶部

Codenameone Form content with large list objects keep bouncing back to top of form

我正在尝试使用 BoxLayout 创建一个包含大量(> 20 或超过屏幕高度的数字)项目的容器作为可滚动列表,它有效(即你可以看到内容向上移动和滑动时向下)但是尝试查看列表底部的项目总是导致内容指针返回到列表顶部。预期向下滚动列表会将视图锁定到滚动操作结束的位置。我也尝试过使用 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);

删除这一行:

contents.setScrollableY(true);

您在一个层次结构中只能有一个可滚动容器,并且您选择了 Form。当您嵌套可滚动对象时,手势会被其中一个选中,这就成了一个问题。不同于桌面,您可以以精致的方式点击特定的滚动条,在触摸设备中,您不能选择特定的容器来滚动。