JavaFX中带滑动行标题的表控件

JavaFX中带滑动行标题的表控件,java,javafx,tableview,javafx-8,Java,Javafx,Tableview,Javafx 8,iTunes中的相册视图有一种平滑的效果,相册标题和封面艺术始终在视图中。如果你滑下屏幕,它们会固定在屏幕顶部,直到碰到下一张专辑,然后滑开 请注意,即使用户向下滚动了一段时间,顶级相册仍然完全可见 这种控制或效果叫什么?我想用谷歌搜索一下 如何在JavaFX中实现这一点?我想在基于Java的GUI中模拟这一点。TableView可以做到这一点吗,或者可能是一些第三方控件 这就是在UITableView中节标题作为默认标题的方式 这将有助于您创建和使用UITableView,我建议您查看中的

iTunes中的相册视图有一种平滑的效果,相册标题和封面艺术始终在视图中。如果你滑下屏幕,它们会固定在屏幕顶部,直到碰到下一张专辑,然后滑开

请注意,即使用户向下滚动了一段时间,顶级相册仍然完全可见

  • 这种控制或效果叫什么?我想用谷歌搜索一下

  • 如何在JavaFX中实现这一点?我想在基于Java的GUI中模拟这一点。TableView可以做到这一点吗,或者可能是一些第三方控件


  • 这就是在UITableView中节标题作为默认标题的方式


    这将有助于您创建和使用UITableView,我建议您查看中的电子表格视图

    电子表格视图允许您在屏幕顶部固定任意数量的行。所以你会有你行为的第一部分

    关于撞到另一个的事实,使用SpreadsheetView会更加困难,但并非不可能


    无论如何,如果您想在TableView中实现该行为,您将在电子表格视图代码中找到非常有用的技巧。

    最简单的方法是使用滚动窗格。在滚动窗格中定义行及其布局(可能每行都是一个HBox,其中包含一个ImageView和一个设置为ImageView高度的TableView)。然后,滚动窗格中的表视图需要让滚动窗格覆盖它们的滚动-也就是说,它们的onScroll气泡一直到滚动窗格

    然后覆盖滚动窗格的onScroll行为。滚动的算法可以如下所示:

    有两种模式

    1) 在相册中滚动会滚动该行的TableView。如果滚动超出了TableView滚动高度的边界(0到滚动高度之间的范围),则模式切换为滚动到相册

    2) 滚动到相册会将滚动窗格滚动到当前行的高度。滚动大于当前行高度的量将移动到下一个相册,并将模式切换回在该相册中滚动

    3) 边缘案例:滚动窗格内的滚动超出滚动窗格的滚动高度(0到滚动高度之间的范围)的边界时,立即移动到下一个相册,并将模式切换回在该相册中滚动


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

    这是UITableView中节头的正常行为。UITableView具有我喜欢的效果,但我的目标平台/API是Java中的JavaFX GUI库。我想复制一下UtableView的行为。作为推论,iTunes中似乎有两个可滚动窗格,因为左窗格和右窗格的高度不同。您可以将右窗格中的TableView滚动与左窗格中的album art滚动锁定在一起,而不是切换模式,您可以在给定时间在哪个窗格滚动之间来回切换。这将产生与我描述的效果相同的效果,而不要求窗格大小相同。