最简单的方法是使用 ScrollPane。在 ScrollPane 中定义行及其布局(可能每行都是一个包含 ImageView 和设置为 ImageView 高度的 TableView 的 HBox)。然后,ScrollPane 内的 TableView 需要让 ScrollPane 覆盖它们的滚动 - 也就是说,它们的 onScroll 向上冒泡到 ScrollPane。
然后您覆盖 ScrollPane 的 onScroll 行为。滚动的算法可以是这样的:
有两种模式。
1) 滚动相册会滚动该行中的 TableView。如果滚动超出TableView的scrollHeight的边界(0到scrollHeight之间的范围),则模式切换到滚动到相册。
2) 滚动到相册会将 ScrollPane 滚动一定量,直到当前行的高度。滚动大于当前行高度的量将移至下一个相册,并将模式切换回滚动到该相册。
3) 边缘情况:在 ScrollPane 内滚动超出 ScrollPane 的滚动高度(0 到滚动高度之间的范围)的边界时,会立即移动到下一个专辑并将模式切换回滚动到该专辑中。
我会给出一个代码示例,但我从未见过有人尝试这样做。我只知道你能做到。