如何使用 javafx 在 Gluon 移动应用程序中切换视图?

How to switch views in Gluon mobile app using javafx?

我正在尝试使用 javafx 创建 Gluon 移动应用程序。我想创建一个登录页面,在其中成功登录后,我需要单击按钮加载另一个(第二视图)视图。我没有得到一个合适的例子。如果有人知道这一点,请提供帮助。我有两个视图主要演示者和次要演示者。(带 FXML 的 gluon 应用程序)。下面是我的主要视图的控制器。

public class PrimaryPresenter {

@FXML
private View primary;

private Label label;
@FXML
private TextField username;
@FXML
private Button loginBt;

private Alert alert;
@FXML
private PasswordField password;
public void initialize() {
    primary.showingProperty().addListener((obs, oldValue, newValue) -> {
        if (newValue) {
            AppBar appBar = MobileApplication.getInstance().getAppBar();
            appBar.setNavIcon(MaterialDesignIcon.MENU.button(e
                    -> MobileApplication.getInstance().showLayer(ArjunsApp.MENU_LAYER)));
            appBar.setTitleText("Primary");
            appBar.getActionItems().add(MaterialDesignIcon.SEARCH.button(e
                    -> System.out.println("Search")));
        }
    });
}

@FXML
private void buttonClick(ActionEvent event) {
    if(username.getText().equals("")){
        alert = new Alert(AlertType.ERROR,"Enter username");
        alert.showAndWait();
    }else if(password.getText().equals("")){
        alert = new Alert(AlertType.ERROR,"Enter password");
        alert.showAndWait();
    }else{
        //Code to load my secondary view
    }
}

}

假设您正在使用 Gluon 插件 - 带有 FXML 模板的多视图项目,您可以使用 MobileApplication.getInstance().switchView(viewName) 轻松切换视图。

你的情况:

@FXML
private void buttonClick(ActionEvent event) {
    ...
    MobileApplication.getInstance().switchView("SECONDARY_VIEW");
}

如果您使用的是 Glisten-Afterburner 模板(它也使用 FXML),您可以使用如下内容:

@FXML
private void buttonClick(ActionEvent event) {
    ...
    AppViewManager.SECONDARY_VIEW.switchView();
}

您可以找到有关 Gluon Mobile 的更多信息 API here