【问题标题】:JavaFX 8 TabPane - Tab buttons keep getting scrolled out of the viewport of TabPane headerJavaFX 8 TabPane - 选项卡按钮不断滚动到 TabPane 标题的视口之外
【发布时间】:2014-12-06 03:16:05
【问题描述】:

我遇到了一个非常奇怪的问题,TabPane 的标签按钮位于左侧。该问题仅在应用程序运行期间存在,但在 SceneBuilder (2.0) 预览版中不存在。

每次选定的Tab 更改(通过用户单击或通过代码更改selectedIndex)时,选项卡都会将其位置向上移动并移出选项卡按钮区域的视口,如示例图片中所示以下 。移动的像素数量似乎取决于TabPane 的宽度(宽度越小,移动越多),并且大多数时候我的TabPane 中的按钮完全移出视口。

可以通过聚焦不同的窗口或在选项卡按钮区域中向上或向下滚动来将选项卡按钮恢复到正常位置。一旦它们回到正常位置,它们只会在所选标签再次更改时再次移动。

我尝试访问TabHeaderSkin 对象(样式类“选项卡”),它们似乎是TabPane 标头区域中唯一因转移而发生变化的运行时对象。根据 Scenic View,他们的localY 值发生了变化。但是,myTabPane.lookupAll(".tab") 什么也没找到。

除此之外,似乎根本不可能访问自动滚动行为或标签按钮位置或类似的东西。

编辑
这是一个 MCVE-FXML

<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>


<HBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="20.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <TabPane side="LEFT" tabClosingPolicy="UNAVAILABLE">
        <tabs>
          <Tab text="Untitled Tab 1">
            <content>
              <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
            </content>
          </Tab>
          <Tab text="Untitled Tab 2">
            <content>
              <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
            </content>
          </Tab>
            <Tab text="Untitled Tab">
              <content>
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
              </content>
            </Tab>
            <Tab text="Untitled Tab">
              <content>
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
              </content>
            </Tab>
        </tabs>
      </TabPane>
   </children>
</HBox>

【问题讨论】:

  • 你能创建一个MCVE吗?
  • @James_D 是的,我添加了一个示例性 FXML。

标签: java javafx javafx-8


【解决方案1】:

这看起来像是影响 JavaFX 8u20 的 known bug。它似乎在 8u40 的 ea 版本中得到修复。

【讨论】:

  • 我不知道为什么我没有早点尝试这个。使用 8u40 早期访问版本时,它工作得很好。
猜你喜欢
  • 2017-01-28
  • 2017-07-04
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 2014-07-16
相关资源
最近更新 更多