禁用分页动画



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

也许有一个通过CSS样式或皮肤界面的解决方案,但我对JavaFX 有点陌生

有什么想法吗?

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

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

要做到这一点,请使用默认的JavaFX2.2分页皮肤作为基础,并对其进行编辑,使其不做动画。如果您将自定义分页皮肤重命名为另一个包(例如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。

所以我建议现在就用分页动画生活,除非你真的需要摆脱它

目前有一个针对JavaFX运行时问题跟踪器的请求,允许禁用分页控件中的动画。参见RT-26439分页:翻页动画应可停用。

最新更新