Различная блокировка ориентации Titanium Android между планшетом и телефоном

Я использую Titanium, мое приложение поддерживает планшеты и телефоны. Для телефонов мне нужно использовать ориентационную привязку ПОРТРЕТ для планшетов ЛАНДШАФТ.

Я попытался настроить android: screenOrientation = "носенсор" в tiapp.xml, импортировав все действия из AndroidManifest.xml и ориентации: [Ti.UI.LANDSCAPE_LEFT] в конфигурации окна в случае планшета, но у меня нет результатов. Все ориентации активны.

Кто-нибудь может мне помочь?

0
0
162
1

Ответы 1

Это должно быть довольно вперед со следующими моментами:

  • Поскольку вам нужно изменить ориентацию во время выполнения, вы не сможете управлять им из tiapp.xml, если не создадите отдельные сборки для телефонов и планшетов, что, как я считаю, не так.
  • Оставьте tiapp.xml по умолчанию и не устанавливайте там ориентацию.
  • Используйте нижеприведенный фрагмент для обработки его внутри файла app.tss.

    "Window[if=Alloy.isTablet]" : {
        orientationModes : [Ti.UI.LANDSCAPE_LEFT, Ti.UI.LANDSCAPE_RIGHT]
    }
    
    "Window[if=Alloy.isHandheld]" : {
        orientationModes: [Ti.UI.UPSIDE_PORTRAIT, Ti.UI.PORTRAIT]
    }
    
  • Это решение будет работать только в том случае, если вы создаете оконные контроллеры с использованием XML, а не с помощью Classic JS.

Дважды проверьте свой код, чтобы не устанавливать ориентацию где-либо еще, чтобы избежать каких-либо проблем.

Спасибо за помощь. Я обнаружил, что activity.requestedOrientation = Titanium.Android.SCREEN_ORIENTATION_LANDSCAPE; активизирует группу вкладок, содержащих мое окно. Вроде работает.

Lorenzo 23.07.2018 13:57

Другие вопросы по теме