Android - обнаруживает изменение ориентации, но интерфейс не отвечает

Возможно ли в Android захватывать события поворота экрана, но на самом деле активность не реагирует на события поворота?

Чтобы усложнить задачу, у меня есть активность, поддерживаемая TabActivity, и на одной из вкладок я хочу повернуть часть области содержимого на экране, но оставить вкладку в портретном режиме.

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

Любая помощь приветствуется!


person Codz    schedule 13.04.2011    source источник


Ответы (2)


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

На самом деле это довольно легко сделать. См. пример здесь: http://www.anddev.org/accessing_the_accelerometer-t499.html

person gby    schedule 13.04.2011
comment
В основном я сделал вариант того, что вы предлагаете, - просто слушал события и запускал свои собственные локальные события, когда ориентация менялась. Спасибо за вашу помощь. - person Codz; 14.04.2011

Возможно, вы захотите добавить «ориентацию» в свойство configChanges активности в AndroidManifest.

android:configChanges="orientation"

http://androidappdocs.appspot.com/guide/topics/manifest/activity-element.html#config

person DenMark    schedule 13.04.2011