在JavaFX中使用滑动行标题的表控件

Joh*_*ica 8 java javafx tableview javafx-8

iTunes中的专辑视图具有光滑的效果,其中专辑标题和封面艺术始终保持在视图中.如果您向下滑动屏幕,它们将固定在屏幕顶部,直到它们碰到下一个专辑,然后它们就会滑落.

iPad截图

请注意,即使用户向下滚动,顶级专辑仍然完全可见.

  1. 这个控制或效果叫什么?我想要谷歌尝试空白.

  2. 我怎么能在JavaFX中做到这一点?我想在我的基于Java的GUI中模仿这个.TableView可以执行此操作,还是可以执行某些第三方控件?

Ste*_*e K 4

最简单的方法是使用 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 到滚动高度之间的范围)的边界时,会立即移动到下一个专辑并将模式切换回滚动到该专辑中。

我会给出一个代码示例,但我从未见过有人尝试这样做。我只知道你能做到。