Вопрос

Здравствуйте, я пытаюсь сделать свой макет совместимой со всеми типами экранов ориентации (ландшафт/портрет). Для этого я использую layout-land а также layout-port.

Это работает для устройств, которые имеют только 2 позиции ориентации (ландшафт и портрет), но не работает, если я поворачиваю устройство, которое поддерживает 4 позиции ориентации (земля влево/правое, порт вверх дном/вверх). Работает только над положением земли по умолчанию, но если я поверну устройство в другом ландшафтном положении, Android выберите layout-port макеты вместо layout-land.

Как я могу решить эту проблему в XML? Или единственное решение - управлять собой изменением ориентации?

Это было полезно?

Решение 4

Кажется, что макет работает. Проблема заключалась в том, что я сам управлял изменением ориентации и принял только 2 типа ориентации.

(Я управляю ориентацией, чтобы просто спуститься с заголовком приложения и сделать его полный экран в ландшафте ..)

Спасибо за ваши ответы

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

Здесь вы заметите, что я просто слушаю сцену для события ScessorationEvent.orientation_change. Когда событие запускается, существует пять возможных ориентаций, в которых может быть этап: по умолчанию, вращается влево, вращается справа, вверх дном и неизвестно.

http://www.unitedmindset.com/jonbcampos/2010/09/27/air-for-android-screen-onientation/

Вы не можете сделать это с помощью XML. Вы должны сделать программную. Чтобы обнаружить изменение ориентации, вы можете использовать OrientationEventListener

Ваш TargetSDK должен быть 2,2 (когда были введены ориентации ReverselandScape и обратного порпортрита ... почти уверен, что это было в 2.2), и ваше устройство должно поддерживать эти ориентации. Например, планшет Sony не выйдет в ReverselandScape, но сделает ReversePortrait

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top