我有一个 RPC 生成的带有标题和正文的小部件列表。我想垂直显示它们,只显示标题。当用户单击标题时,相应的正文会向下滑入视图,而任何其他打开的正文都会滑出视图。
手风琴效果可以通过 StackPanel 来实现。但是,我还希望 CellList 和 AsyncDataProvider 提供的分页和访问远程数据的便利性。看起来这两者将在 GWT 2.5 中一起提供,不幸的是尚未推出。
我的另一个想法是只使用一个 CellList,并在每个单元格上使用相对定位来获得手风琴效果。逻辑很容易实现,但是从单元格列表中抓取单元格并弄乱它们的style
属性似乎是一种肮脏的黑客行为。
有一个更好的方法吗?
跟进:(我不确定这是否应该是一个单独的问题。) CellList 的结构看起来像这样:
<div __gwtcellbasedwidgetimpldispatchingfocus="true" __gwtcellbasedwidgetimpldispatchingblur="true" class="GJOQRHCBPB GJOQRHCBMK">
<div onclick="" __idx="0" class="GJOQRHCBLB" style="outline:none;" tabindex="0">
<!-- my cell html -->
</div>
<div onclick="" __idx="1" class="GJOQRHCBLB" style="outline:none;" tabindex="1"> <!-- ... -->
<div onclick="" __idx="2" class="GJOQRHCBLB" style="outline:none;" tabindex="2"> <!-- ... -->
<!-- ... -->
</div></div>
为我的单元格设置样式很容易,并且可以在页面上正确显示。但是,我的单元格样式不会影响父 div(带有__idx
),它们仍然会延伸整个原始长度。这意味着如果您单击单元格列表“应该”的位置下方,将触发选择事件。如果我可以直接访问和设置__idx
div 的样式,则可以解决此问题,但恐怕这是一个非常肮脏的 hack。有一个更好的方法吗?