Android Любая ориентация XML Mayout
-
27-10-2019 - |
Вопрос
Здравствуйте, я пытаюсь сделать свой макет совместимой со всеми типами экранов ориентации (ландшафт/портрет). Для этого я использую 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