Как заблокировать макет моей программы для Android в одной ориентации

Возможный дубликат:
Не хочу, чтобы активность уничтожалась/создавалась при повороте телефона

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

Я предполагаю, что это как-то связано с android:layout в файле xml, но я ничего не могу найти в Интернете.


person Mike V    schedule 31.05.2010    source источник


Ответы (5)


Этот ответ выглядит многообещающим для меня (используется [android] [screen-orientation] в поле поиска SO)

person Andreas Dolk    schedule 31.05.2010

Самый простой и один из способов сделать это — иметь свойство android:screenOrientation="portrait|landscape"
для тега <activity> в файле AndroidManifest.xml.

person Samuh    schedule 31.05.2010

В java-коде это будет выглядеть так:

super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
person Jakub Kučera    schedule 09.03.2012

Вы можете использовать этот синтаксис в файле манифеста для определенного действия:

android:configChanges="keyboardHidden|orientation"
person murali.dhuli    schedule 31.05.2010

Вышеупомянутое никогда не работает для меня.

Я всегда использую: -

setRequestedOrientation(0);

Изменение значения в конце даст блокировку по горизонтали/вертикали. Убедитесь, что клавиатура открыта в манифесте, если она находится в портретном режиме, так как это может привести к неожиданным результатам.

person andy_spoo    schedule 31.05.2010
comment
Моя IDE не позволяет мне использовать число, говорит, что это должна быть одна из констант из документации. Есть ли альтернатива? - person Azurespot; 31.03.2015