【问题标题】:Follow up on: Rebuild list of containers without scrolling the list跟进:在不滚动列表的情况下重建容器列表
【发布时间】:2017-01-16 10:56:06
【问题描述】:

参考 Shai Almog 的这个问答: Rebuild list of containers without scrolling the list

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

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

我将 Container-class 子类化为使 setScrollY(int) 可见。将它与任意值一起使用不会滚动到该位置,因此setScrollY 方法似乎没有改变整个内容窗格的滚动位置。

myContainer.getScrollY() 总是返回“0”。我只能通过调用getContentPane().getScrollY() 来获得滚动位置。

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

感谢您的建议!

【问题讨论】:

    标签: codenameone


    【解决方案1】:

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

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

    【讨论】:

    • 这就像一个魅力。非常感谢@Shai 指出这个明显正确的解决方案以及支持您的 cn1 用户的好方法!!我希望我考虑过为表单尝试 BorderLayout。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2021-09-24
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    相关资源
    最近更新 更多