iTunes 中的专辑 View 具有流畅的效果,专辑名称和封面艺术始终可见。如果您向下滑动屏幕,它们会一直固定在屏幕顶部,直到碰到下一张专辑,然后它们才会滑开。
请注意,即使用户向下滚动了一段距离,顶部相册仍然完全可见。
这个控件或效果叫什么?我想出一些空白,试图用谷歌搜索它。
如何在 JavaFX 中执行此操作?我想在基于 Java 的 GUI 中模仿这一点。 TableView 可以做到这一点,还是可以使用一些第三方控件?
最佳答案
最简单的方法是使用 ScrollPane。在您的 ScrollPane 中,您可以定义行及其布局(可能每一行都是一个 HBox,其中包含一个 ImageView 和一个设置为 ImageView 高度的 TableView)。然后,ScrollPane 内的 TableView 需要让 ScrollPane 覆盖它们的滚动——也就是说,它们的 onScroll 冒泡到 ScrollPane。
然后您覆盖 ScrollPane 的 onScroll 行为。滚动的算法可以是这样的:
有两种模式。
1) 在相册中滚动会滚动该行中的 TableView。如果滚动超出 TableView 的 scrollHeight 的边界(介于 0 和 scrollHeight 之间的范围),则模式切换为滚动到相册。
2) 滚动到相册会将 ScrollPane 滚动到当前行的高度。滚动大于当前行高度的量会移动到下一个相册并将模式切换回在该相册中滚动。
3) 边界情况:在 ScrollPane 内滚动超出 ScrollPane 的 scrollHeight 边界(0 和 scrollHeight 之间的范围)会立即移动到下一个专辑并将模式切换回在该专辑中滚动。
我会给出一个代码示例,但实际上我从未见过有人尝试这样做。我只知道你能做到。
关于java - JavaFX 中带有滑动行标题的表格控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962516/