Codenameone 后续操作:在不滚动列表的情况下重建容器列表

Codenameone 后续操作:在不滚动列表的情况下重建容器列表,codenameone,Codenameone,关于Shai Almog的问题和回答: 我有一个带有一个容器(TableLayout)的表单,其中包含多行标签和按钮。单击按钮更改行的顺序并重建整个表单(在myForm.removeAll()之后)。在myForm.revalidate()之后,表单跳转到顶部 我正试图实现这个精确的行为,在重新验证/更改容器内容后返回到同一点(滚动位置Y) 我对容器类进行了子类化,使setcroly(int)可见。将其与任意值一起使用不会滚动到该位置,因此setscroly方法似乎不会整体更改内容窗格的滚动位

关于Shai Almog的问题和回答:

我有一个带有一个容器(TableLayout)的表单,其中包含多行标签和按钮。单击按钮更改行的顺序并重建整个表单(在
myForm.removeAll()之后)。在
myForm.revalidate()之后,表单跳转到顶部

我正试图实现这个精确的行为,在重新验证/更改容器内容后返回到同一点(滚动位置Y)

我对容器类进行了子类化,使
setcroly(int)
可见。将其与任意值一起使用不会滚动到该位置,因此
setscroly
方法似乎不会整体更改内容窗格的滚动位置

并且
myContainer.getScrollY()
始终返回“0”。我只通过调用
getContentPane().getScrollY()
获取滚动位置

但是,显然不可能在内容窗格上调用
setScroly()
-方法,因为不可能对内容窗格进行子类化,从而在重新验证表单后回滚到相同的位置


谢谢你的建议

使用边框布局,禁用表单/内容窗格的滚动


将容器(您暴露的
setScroll
)放在中间,并确保在该
容器上调用
setScrollableY(true)

这很有魅力。非常感谢@Shai为我指出这个显然正确的解决方案,以及支持cn1用户的好方法!!我希望我考虑过尝试一下表单的边界布局。