0

同一控制器是否可以有一个xml用于 iOS 和一个xml用于 Android?

例如:

我有 que 控制器:UIPhoto.js

我想有2个不同xmltss文件:UIPhoto-iOS.xmlUIPhoto-Android.xml

并在设备为 iOS 或 Android 时分别充电。

谢谢你。

4

3 回答 3

4

是的,这是可能的,而且非常简单!您只需要为您要定位的特定平台设置一个不同的文件夹。想象一下,您在 Views 文件夹中有 index.xml 文件,对吧?您可以按照习惯对 xml 进行编码,如果您想要一个不同的 Android 文件(比如说),您只需要在“Views”文件夹中创建一个名为 Android 的文件夹。使用文件夹结构检查此图像:

合金文件夹结构

请注意“控制器”中的 Android 文件夹和“视图”中的 iOS ;)

于 2016-02-05T13:29:30.117 回答
2

您可以在视图中使用特定于平台的文件夹

controllers   
--- UIPhoto.js
views
--- android
------ UIPhoto.xml
--- iOS
------ UIPhoto.xml

但我建议您使用 tss 而不是使用 2 xml 和 2 tss。
例如在你的 tss 中:

"Window[platform=ios]":{
   fullscreen : true
}

"View[platform=android]" :{
   elevation : 8
}
"View[formFactor=tablet]" :{
   elevation : 8
}
"View[platform=android formFactor=handheld]" :{
   elevation : 8
}

对于您的控制器:

if(OS_IOS){
}
if(OS_ANDROID){
}
于 2016-02-06T04:37:46.513 回答
0

当设备是 iOS 或 Android 时,我认为您不能切换 xml 文件或 tss 文件。

但也许这会有所帮助:

首先,您可以Ti.Platform.osname;在 index.js 中检测操作系统并评估这样的全局变量Alloy.Globals.OS

现在您可以在 js 文件中使用简单的 if 语句切换代码:

if(Alloy.Globals.OS == "android"){...}

在您的 tss 文件中,您可以像这样区分平台:

"#title[platform=android]" : {
    font : { textStyle : Ti.UI.TEXT_STYLE_HEADLINE }
}
于 2016-02-05T12:06:16.677 回答