eclipse - 如何使用构成 Gluon 项目的 iOS、android、桌面(和 main)的 Gluon 文件夹?

标签 eclipse gradle javafx gluon

我正在尝试通过将特定于平台/操作系统的代码放在它们各自的文件夹中来设置我的 Gluon 项目(在新创建的 Gluon 项目中设置的自动创建的项目)。但是,无论我使用 Gradle 执行什么任务,它最终都会执行 Main文件夹。

假设我想要一个 com.gluonhq.charm.glisten.mvc.Viewjavafx.scene.control.Button在其中 - 并通过说明它来自哪个文件夹(main、android、desktop 或 iOS)来给它贴上不同的标签。这怎么可能?

最佳答案

根据经验,您不应该在项目中要求特定的平台代码。

如果你想要的是基于平台的自定义样式,你可以使用 Platform.getCurrent().name()然后根据它使用react。

例如,MyDevoxx app根据平台和设备类型加载不同的 css 文件。

了解平台特定文件夹如何工作的一个好方法是查看 Charm Down library ,以及不同服务的实现。

您会注意到这些文件夹包含 java 和特定平台代码。

可以找到有关如何创建新服务的示例 here .例如,AndroidLogService实现使用 android.util.Log ,而 IOSLogService使用原生 Objective-C(见 Log.m)。该本地代码必须编译为本地库(参见构建文件中的installNativeLib 任务)。

在任何情况下,服务都是从 main 调用的。包裹:

Services.get(LogService.class).ifPresent(service -> service.log(message));

当您将应用程序部署到特定平台时,只会调用该平台的实现。

因此,如果您需要一项新服务,您可以按照 Charm Down 中的设计创建它。

关于eclipse - 如何使用构成 Gluon 项目的 iOS、android、桌面(和 main)的 Gluon 文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46634844/

相关文章:

ios - Cocoapods 与 Gradle - iOS

JavaFX Span Tableview 通过 MapEntries 合并单元格

fonts - javafx 实际默认字体

eclipse - 更新 Eclipse : Searching Alternate solutions 时出错

java - 用于项目语义版本控制的 Maven 插件

eclipse - 在 Eclipse 中安装 ADT 23.0.3 时出现 SVNKit 错误?

Kotlin Gradle - java.lang.NoClassDefFoundError : org/jetbrains/kotlin/konan/target/KonanTarget

安卓-Gradle : Copy to native-libs

java - 在使用 Java 6 的 Mac 上运行 JavaFX 2?

Java 应用程序分析和测试