0

Возможно ли иметь один xml для iOS и один xml для Android для того же контроллера?Appcelerator - Разный xml для того же контроллера

Например:

У меня есть контроллер Que: UIPhoto.js

, и я хочу иметь 2 различных xml и tss файлы: UIPhoto-iOS.xml и UIPhoto-Android.xml

и зарядить каждый, когда устройство IOS или Android ,

спасибо.

ответ

4

Да, это возможно и довольно просто! Вам просто нужно иметь другую папку для конкретной платформы, на которую вы хотите настроить таргетинг. Представьте, что у вас есть файл index.xml внутри папки Views, верно? Вы можете указать свой xml, как вы привыкли, и если вы хотите использовать другой файл для Android (скажем), вам просто нужно создать папку внутри папки «Views» под названием Android. Проверьте это изображение со структурой папок:

Alloy folder structure

Обратите внимание на Android папку в «контролеров» и прошивкой в ​​«взглядов»;)

+0

О, спасибо, это то, что я ищу. Я попробую в следующий понедельник. Огромное спасибо. Если все будет хорошо, я отвечу зеленым тиком. – amurcia

+0

Звучит неплохо! Просто дайте мне знать тогда =) –

0

Я не думаю, что вы можете переключать файл xml или tss, когда устройство является iOS или Android.

Но, может быть, это полезно:

Прежде всего, вы можете обнаружить ОСА с Ti.Platform.osname; в вашем index.js и ревалоризировать глобальный varibale как этот Alloy.Globals.OS.

Теперь вы можете переключить свой код с простым, если заявления также в JS файл с:

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

В файле TSS вы можете изящный платформы, как это:

"#title[platform=android]" : { 
    font : { textStyle : Ti.UI.TEXT_STYLE_HEADLINE } 
} 
+0

Спасибо, я знаю, что это options.I только хочу знать, если это вариант, который я уже существует. – amurcia

+0

Я не уверен, но, возможно, вы можете использовать «require (« namefile »)». Вы попробовали этот вариант? – Giordano

+0

Нет, я попробую, спасибо вам большое. – amurcia

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){ 
} 
Смежные вопросы