2

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

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

有任何想法吗?

4

1 回答 1

1

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

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

为此,请使用默认的JavaFX 2.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 分页:翻页动画应该是 deactivatable

于 2013-01-05T02:32:59.900 回答