0

我正在使用 TornadoFX 在 Kotlin 中编写一个小型聊天应用程序,目前可以使用。
我目前正在尝试使其在接收新消息时更具视觉吸引力。
消息在TableView(发件人 - 消息)中,但滚动到新消息并不像我想要的那样流畅。

我需要帮助的片段相对较短:

addEventHandler(ScrollToEvent.ANY) {
  it.consume()
  timeline {
  val keyValue = KeyValue(/* property to change */, /* target value */, Interpolator.EASE_OUT)
    keyframe(0.25.seconds) {
      this.plusAssign(keyValue)
    }
  }
}

一般来说,我需要帮助确定要更改的属性以及该行中的目标应该是什么:

KeyValue(/* property to change */, /* target value */, Interpolator.EASE_OUT)
4

1 回答 1

1

好的,我找到了解决方案。一旦存在足够的行(并且当滚动实际上做任何事情时),就需要查找提供的ScrollBar内容。TableView

TornadoFX JavaFX Sync Scroll across tableviews,我调整了查找并提出了这个有效的代码:

addEventHandler(ScrollToEvent.ANY) {
  it.consume()
  timeline {
    val scrollBar = lookupAll(".scroll-bar").first() as ScrollBar
    val keyValue = KeyValue(scrollBar.valueProperty(), scrollBar.max, Interpolator.EASE_OUT)
    keyframe(0.5.seconds) {
      this.plusAssign(keyValue)
    }
  }
}
于 2017-06-30T22:42:18.233 回答