繁体   English   中英

如何使用构成 Gluon 项目的 iOS、Android、桌面(和主)的 Gluon 文件夹?

[英]How to use Gluon folders of iOS, android, desktop (And main) that make up a Gluon project?

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

假设我想要一个带有javafx.scene.control.Buttoncom.gluonhq.charm.glisten.mvc.View - 并通过说明它来自哪个文件夹(主,android,桌面或IOS)。 这怎么可能?

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

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM