我有一个需要排序的小部件列表。我想为这些小部件列表创建一个容器,以便在每次添加新小部件时对它们进行重新排序。我该怎么办?
我可以看到以下方式:
GWT 2.4
PS 实际上,我正在寻找一些东西,可以表达为“由小部件集合支持的小部件容器”,即我更改集合 - 容器更改其内容,我如何实现它,或者我在哪里可以找到它?
PPS 小部件可能不同,这就是为什么我不认为我可以轻松使用CellTable。
答案 0 :(得分:1)
添加新窗口小部件后,没有直接的方法可以重新排序DOM中的元素。 附加小部件后,您无法移动它们(更改其在文档结构中的位置)而无需分离和重新附加。 那么,通过绝对定位,您可以更改左上角坐标来移动项目,如果它是您需要的。
当我必须对TreeItem元素进行排序时,我遇到了类似的问题(没有可用的内置排序方法)。作为一种解决方法,我将所有子项读入列表并同时从父窗口小部件中删除它们,然后使用Comparator对这些项目进行排序,并将它们从排序列表中添加回父项。所有东西都在一个sort()方法中,它封装了所有必需的功能,简化了对这段代码的理解。
“小部件集合支持的小部件容器”
我想了解一个类似的东西,它也可以动态排序和重新附加。但它仍然会得到我假设的相同分离支持。我建议你自己写一个,以满足你的特殊需求。您需要树或FlowPanel或其他任何东西 - 您可以扩展它并根据上下文添加sort()逻辑。并相应地覆盖add()方法。所以,你的第一个选择对我来说似乎是一个可能的解决方案。