我建议你看看详细的文档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