【发布时间】:2016-02-12 18:25:16
【问题描述】:
我有两个元素高度不同的列表视图,但它们显示的数据相同。一张图说明一切:
右侧的列表视图是左侧列表视图的滚动条表示(红色/灰色/紫色日期的列表,未来的日子向上,过去的日子在底部,无限的滚动侦听器填充相同的列表)。
第一个问题是滚动一个列表并平滑滚动另一个列表的能力(smoothScrollToPosition(firstVisibleItem) 不稳定,因为长时间滚动,第一个可见项目是同一个项目)。我需要在 ScrollbarList 中看到每个小滚动条,反之亦然。
第二个问题是在创建时,我在列表中有今天的索引(比如说从 100 到第 50 个),左侧列表中的 setSelection(50) 还可以,因为一个元素占据了大部分屏幕,但我不知道如何选择滚动条列表,以便在小圆圈指示器的中间可以看到相同的元素,到目前为止setSelectionFromTop(50, screenHeight/2) 正在工作。
编辑:
我已经设法使用代码将两个列表正确定位到中心
dayListView.setSelectionFromTop(getTodayIndex(), screenHeight / 4);
scrollbarListview.setSelectionFromTop(getTodayIndex(), screenHeight / 2 - itemView.getMeasuredHeight() / 2);
当没有附加 ScrollListener 时,两个列表元素都位于中心(除了无限滚动侦听器,它不与其他列表视图交互)。所以现在唯一的大问题是如何在仅滚动它们时以良好的纵横比平滑滚动它们。有什么想法吗?
【问题讨论】:
标签: android listview scroll position height