我建議你看看詳細的文檔here,而不僅僅是JavaDoc。
在那裏你會找到關於如何添加和創建圖層的更詳細的解釋。
的首選方法是使用addLayerFactory()
,如:
@Override
public void init() {
addViewFactory(BASIC_VIEW,() -> new BasicView(BASIC_VIEW));
addLayerFactory("My Layer",() -> new SidePopupView(new StackPane(new Button("Side"))));
}
,除非你有MobileApplication.getInstance().showLayer("My Layer")
顯示它的層將被隱藏。
您可以創建自己的Layer
實現,如:
private class MyLayer extends Layer {
private final Node root;
private final double size = 150;
public MyLayer() {
root = new StackPane(new Button("A custom layer"));
root.setStyle("-fx-background-color: white;");
getChildren().add(root);
getGlassPane().getLayers().add(this);
}
@Override
public void layoutChildren() {
root.setVisible(isShowing());
if (!isShowing()) {
return;
}
root.resize(size, size);
resizeRelocate((getGlassPane().getWidth() - size)/2, (getGlassPane().getHeight()- size)/2, size, size);
}
}
,並添加它,以及工廠:
addLayerFactory("My Layer",() -> new MyLayer());
但請注意,你將不得不重新調整和重新定位它,否則你將獲得0,0位置,並照顧其可見性。
或者您可以使用內置圖層,如SidePopupView
,您不需要擔心這些更低層次的細節。
正是我在找的東西。非常感激! (我需要一個自定義ProgressIndicator的'Layer',並且在Charm lib中找不到合適的) – jns