【问题标题】:Proportional Resize of Splitpanes拆分窗格的比例调整大小
【发布时间】:2017-12-10 01:44:43
【问题描述】:

当我调整带有拆分窗格的窗口大小时,我的拆分窗格会以不可预知的方式调整大小。有时左窗格有更多空间,有时右窗格。有时,额外的空间会分散开来,有时则完全分配给一个窗格。

例如,最大化和恢复窗口会改变拆分窗格的布局 - 在此过程之前它们将以某种方式设置,之后它们将具有完全不同的位置。

我希望拆分窗格始终保持相同的比例。因此,如果在调整大小之前,一个是宽度的 30%,另一个是宽度的 70%,我希望它们在调整大小完成后继续保持 30% / 70%。

关于如何完成此任务的任何建议?

【问题讨论】:

标签: javafx javafx-8


【解决方案1】:

很高兴您回答了自己的问题。我建议使用Platform.runLater 而不是setResizableWithParent 来处理您遇到问题的聪明代码。看我的回答there

【讨论】:

    【解决方案2】:

    我能够通过将 UI 中的所有顶级项目设置为不随父项调整大小来解决此问题:

        SplitPane.setResizableWithParent( libraryPane, Boolean.FALSE );
        SplitPane.setResizableWithParent( artSplitPane, Boolean.FALSE );
        SplitPane.setResizableWithParent( currentListSplitPane, Boolean.FALSE );
        SplitPane.setResizableWithParent( primarySplitPane, Boolean.FALSE );
        SplitPane.setResizableWithParent( currentPlayingPane, Boolean.FALSE );
    

    我不知道它是如何工作的,也不知道为什么,但我偶然发现了它,它完全符合我的要求:四个窗格线性扩展,同时保持基本比例(库、主拆分、当前列表、艺术)和一个窗格不改变大小(当前播放)。

    这是一个非常糟糕的注释图像:

    我最好的猜测是有一些聪明的代码试图在窗口调整大小时智能地调整内容的大小,并且通过将 ResizableWithParent 设置为 false 聪明的代码会关闭并且一些基本的代码会启动。

    不管怎样,这对我来说非常有效,我希望它可以帮助其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      相关资源
      最近更新 更多