禁用分页动画

时间:2012-08-27 13:39:36

标签: javafx pagination javafx-2

我正在尝试使用JavaFX禁用Pagination控件动画。我找不到有关如何做到这一点的任何确切信息。我知道有些控件有setAnimated(false)方法,但这个方法没有。

也许通过CSS样式或通过Skin界面有一个解决方案,但我是JavaFX的新手

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于JavaFX 2.2,分页动画有点难以禁用。

正如您所注意到的,没有公共API来禁用动画(CSS中没有任何内容)。您需要创建自己的皮肤并将该皮肤分配给分页控件。

要执行此操作,请使用默认的JavaFX 2.2 pagination skin作为基础并对其进行编辑,以便它不会执行动画。如果您将自定义分页皮肤重命名为另一个包(例如org.acme.javafx.scene.control.skin),则可以通过为应用程序分配css样式表来指定新皮肤,其中包括以下规则:

.pagination {
    -fx-skin: "org.acme.javafx.scene.control.skin.PaginationSkin";
}

除了初始实现新JavaFX用户的困难(这是相当重要的)之外,这种方法的另一个严重缺点是在JavaFX 2.2中,皮肤API不公开,所以当JavaFX 8发布时皮肤api是公共的,您的更改可能不起作用,因此您需要为JavaFX 8重新编码它们。您的更改将无法继续用于JavaFX 8的原因是您的自定义分页皮肤需要的com.sun.javafx.scene.control.skin.SkinBase类派生自已转移到javafx.scene.control.skin.SkinBase之类的东西,成为公共API。

所以我建议现在和Pagination动画一起生活,除非你真的需要摆脱它。

目前有一项针对JavaFX runtime issue tracker的请求,允许在分页控件中禁用动画。请参阅RT-26439 Pagination: Animation of page flip should be deactivatable