2015-05-04 5 views
0

Скажем, мое приложение имеет два вида деятельности A и B. И, также, назовем возможные ориентации экрана landscape-1, portrait-2, landscape-3 и portrait-4.
Я хотел бы, чтобы зафиксировать ориентацию A на альбомную (1 и 3) и B как к альбомной и портретной (1, 2, 3 и 4). Итак, для этого я использовал sensorLandscape. Позже я понял, что sensorLandscape предназначен для API 9 или выше, и я хочу поддерживать более старые версии. Я искал способ эмулировать поведение sensorLandscape, но я ничего не нашел. Итак, теперь я собираюсь использовать более простой подход: я бы хотел использовать режим для активности A (это всего лишь 1), но я не хочу, чтобы пользователь мог использовать landscape-3 по активности B (так что нет странный поворот при возвращении к активности A).
Подводя итог, идея такова:
Позитивные ориентации экрана для деятельности A: landscape-1.
Позитивные ориентации экрана для деятельности B: landscape-1 и portrait-3.
Любые идеи о том, как это сделать?Блокировка ориентации экрана только на один ландшафт и один портретный режим

+0

Форсирование блокировки ориентации для операции B бессмысленно и, возможно, вызывает раздражение пользователя. Если вы собираетесь поддерживать пейзаж и портрет для Activity B, то просто разрешите пользователю выбирать, какую ориентацию они хотят (пейзаж, обратный пейзаж, портрет, обратный портрет). Другими словами, не пытайтесь вообще блокировать ориентацию. Что касается Activity A, снова вы можете вызвать раздражение пользователя, если вы поддерживаете только один ландшафтный режим - отлично, принудительно ориентируйте только ландшафт, если вам нужно, но поддерживать пейзаж и обратный ландшафт. – Squonk

+0

Я бы с удовольствием это сделал, вот что делает «sensorLandscape». Но я не могу использовать его, потому что мне нужно поддерживать старые устройства. Вы знаете, как я могу эмулировать поведение sensorLandscape? – user4830843

+0

Обратите внимание на динамическое установление ориентации в вашем рабочем коде. Проверьте версию API, а затем установите ориентацию в зависимости от этого - если API> 9, то вы сможете обнаружить текущую ориентацию устройства. Деятельность B может (и должна) позволять делать свою собственную вещь, автоматически настраиваемую ОС и фактическую ориентацию устройства. – Squonk

ответ

0

Используйте его и не поддерживают API < 13 только потому, что нет необходимости делать дополнительную работу

Совершено лучше, чем совершенный

Не волнуйтесь, вы все еще таргетирования 97% пользователей Android с Апи > = 9.

+0

Я не могу себе этого позволить. В моей стране многие люди используют мобильные телефоны с более низким API. – user4830843

+0

Вы не пишете приложения для людей своей страны, но для всего мира ... Я не могу себе представить, что в вашей стране много пользователей с писом ниже Android 4.0 –

+0

Но обходным решением было бы использовать датчик менеджер и спросить силу оси x и y –