java - JavaFX 中带有滑动行标题的表格控件

标签 java javafx tableview javafx-8

iTunes 中的专辑 View 具有流畅的效果,专辑名称和封面艺术始终可见。如果您向下滑动屏幕,它们会一直固定在屏幕顶部,直到碰到下一张专辑,然后它们才会滑开。

iPad screenshot

请注意,即使用户向下滚动了一段距离,顶部相册仍然完全可见。

  1. 这个控件或效果叫什么?我想出一些空白,试图用谷歌搜索它。

  2. 如何在 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/

相关文章:

JavaFX从颜色数组设置圆形填充颜色

java - Java FX 中的 TextField 事件

swift - 使用来自 firebase 的数据填充 "initial view"的 tableviewcontroller

java - 无法在 32 位 JVM 上加载 64 位 SWT 库(替换 SWT 文件)

Java在线程中的循环中向JButton添加点击监听器

java - 向所有按钮添加相同的操作,但操作未应用于 Javafx 中的最后一个按钮

ios - 如何在不弄乱内容的情况下标记 dequeueReusableCell?

java - 监控硬盘空间...如何实时显示信息?

java - 如何检查 Collection 是否至少包含 google-truth 中的 N 个匹配元素?

ios - NSAttributedString 在 tableViewCell 中滚动不流畅(消失/重新出现)