【发布时间】:2014-10-22 12:50:11
【问题描述】:
我有一个包含 2 个活动的应用程序,一个是 DataGrid 列表,另一个是来自列表某个条目的详细信息活动。它们都在同一个布局页面上:
__________________
| ListView |
| - entry 1 |
| - entry 2 |
| - entry 3 |
| - .... |
| - entry n |
|------------------|
| DetailsView |
|__________________|
dataGrid 的高度是固定的,因此我有一个 ScrollPanel 可以访问某些条目,如果您单击某些条目。
当我实现一个删除条目的功能时。我发送了一个delete 并在响应OK 之后我通过GET 调用获得了新列表并重新填充了我的dataGrid。因此,例如,当我删除条目 42 时,对于您必须向下滚动的内容,该条目将被删除,并且滚动面板位置与新加载的列表保持相同,正如我想要的那样。所以我的下一步是改变一些细节,所以我用我的placeController 来加载一个新的空DetailsView,因为旧的选择一个已经被删除了。但是当我调用一个新的DetailsPlace 我的ListView 更改并且ScrollPanel 位置是列表的开头(ScrollPanel 默认状态,在列表的开头)。
但这不是我想要完成的,为什么 ScrollBar 在goTo(place) 调用之后会发生变化。感谢您的帮助。
更新:
另一方面是,在同一布局中使用 2 个活动是否是一个好主意。或者将两者比较到一个活动和视图中是否更聪明:
有点像(uiBinder):
<g:ResizeLayoutPanel ui:field="listContent" width="100%" height="100%">
<g:ScrollPanel ui:field="listScrollPanel" width="100%" height="250px">
<c:DataGrid ui:field='dataGrid' width="100%" height="250px" />
</g:ScrollPanel>
</g:ResizeLayoutPanel>
<g:ScrollPanel>
<g:HTMLPanel width="100%" height="100%">
<table border="0" width="100%" styleName="{style.detailsTable}">
<!-- Details Table data -->
</table><br/>
</g:HTMLPanel>
</g:ScrollPanel>
【问题讨论】: