有没有办法阻止更新(绘画)到`WebView`然后重新启用它们?

时间:2017-11-25 04:08:52

标签: javafx

有没有办法阻止更新(绘画)到WebView,然后重新启用它们?

e.g。

  1. 禁用绘画
  2. 设置新的HTML内容
  3. 重新启用绘画
  4. 为什么我要这样做

    因为我的html是 jumpy ,所以元素将像以前一样在HTML页面上的相同位置,但在更新HTML期间,它们会移动一点。由于我定期刷新HTML,因此经常跳转会非常烦人。

1 个答案:

答案 0 :(得分:2)

WebView中没有真正的绘画开/关开关,或者对于JavaFX来说(据我所知),但是下面的解决方法可能会有所帮助。

你可以随时:

  1. snapshot WebView,用于创建图像。
  2. 将WebView替换为快照图像。
  3. 设置新的html内容。
  4. 使用WebView替换快照图像。
  5. 要执行此操作,您可以将快照图像和WebView放在StackPane中,WebView位于顶部,当您想要隐藏它并设置新的html内容并触发{{{}时触发setVisible(false)。 1}}一旦你想要看到新的内容。

    您可能希望使用某些同步来了解新设置的html内容何时通过从JavaScript到Java的消息或通过监视Java中的html事件来完成呈现(这样做超出了本文的范围)。可能还有一些问题,WebView检测到它实际上是不可见的,然后由于优化而决定是懒惰的,并且在重新显示之前不会重新显示更新的html内容(不确定我还没试过它) )。

    无论如何,也许尝试一下这种技术,看看它是否适合你。