Javafx Jfoenix Drawer阻挡了Overlay背后的节点

问题描述 投票:0回答:1

您好StackOverflow团队,

我是Javafx的新手,经过对该主题的一些阅读后,我决定开始构建我的第一个应用程序。

我的应用程序在左侧面板上有一个主页面和一个hamburgerDrawer。我遇到的麻烦是当我加载应用程序时,抽屉覆盖层阻挡了它下面的节点。当我关闭抽屉时,我尝试使用SetDefaultDrawerSize()方法来0,并且特定尺寸,比如SetDefaultDrawerSize(900),没有成功......抽屉仍在阻挡下面的内容。

非常感谢您的帮助...在此先感谢....

@Override
public void initialize(URL url, ResourceBundle rb) {
try {
  AnchorPane drawerContent = FXMLLoader.load(getClass().getResource("/materialitemtracker/view/AnchorPaneHamburgerDrawerView.fxml"));

  hamburgerDrawer.setSidePane(drawerContent);
  hamburgerDrawer.setOverLayVisible(true);
  hamburgerDrawer.setResizableOnDrag(true);
  HamburgerBackArrowBasicTransition burgerTask = new HamburgerBackArrowBasicTransition(hamburger);
  burgerTask.setRate(-1);
  hamburger.addEventHandler(MouseEvent.MOUSE_PRESSED, (e) -> {

    burgerTask.setRate(burgerTask.getRate() * -1);
    burgerTask.play();

    if (hamburgerDrawer.isShown()) {

      hamburgerDrawer.close();
      // hamburgerDrawer.setDefaultDrawerSize(0);
    } else {
      hamburgerDrawer.open();
      // hamburgerDrawer.setDefaultDrawerSize(900);
    }
  });

} catch (IOException ex) {
  Logger.getLogger(AnchorPaneMainController.class.getName()).log(Level.SEVERE, null, ex);
}

示例图片:

Application Main Page

Drawer content

javafx drawer jfoenix
1个回答
1
投票

我和你描述的问题有类似的问题。然而在我的情况下,它不是覆盖层而是抽屉本身。可见时的叠加层会在可见时包含整个UI,因此我很快就确定这不是我的问题,因为它只是UI左侧的按钮没有接收事件。相反,受影响的区域似乎限制了我设置的默认抽屉尺寸。

我可以看到两种解决方案:

  1. 在UI结构中移动抽屉上方的按钮。这对我来说不起作用,因为按钮会在我的UI中与展开的抽屉重叠。
  2. 为抽屉提供负偏移并根据运行时的抽屉状态更改约束。我的抽屉位于一个AnchorPane内部UI的左侧,因此设置一个负的左锚点值开始(本例中为-255)。然后根据我所做的状态如下。 drawer.setOnDrawerOpening(event -> { AnchorPane.setRightAnchor(drawer, 0.0); AnchorPane.setLeftAnchor(drawer, 0.0); AnchorPane.setTopAnchor(drawer, 0.0); AnchorPane.setBottomAnchor(drawer, 0.0); }); drawer.setOnDrawerClosed(event -> { AnchorPane.clearConstraints(drawer); AnchorPane.setLeftAnchor(drawer, -255.0); AnchorPane.setTopAnchor(drawer, 0.0); AnchorPane.setBottomAnchor(drawer, 0.0); });

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.