Предлагая различные _функционализм_ (не просто макет) в зависимости от ориентации? - PullRequest
0 голосов
/ 15 сентября 2011

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

Мое требование таково:

  1. Когда устройство находится в ландшафтном режиме, должна отображаться диаграмма.
  2. Всякий раз, когда устройство возвращается в портретный режим, должен отображаться более ранний экран анимации.

Мне интересно, возможно ли обеспечить различные функции в зависимости от ориентации.Я вижу 2 варианта

  1. Переопределить Activity.onConfigurationChanged() - но что тогда?Могу ли я сделать setContentView() на этом этапе?Или я могу запустить другое действие (которое отображает диаграмму в отдельном действии только для режима lanscape)?
  2. Переопределить Application.onConfigurationChanged().Но я, честно говоря, понятия не имею, как поступить с этим.

1 Ответ

1 голос
/ 15 сентября 2011
  1. Да, вы можете позвонить setContentView() внутри Activity.onConfigurationChanged().Вы можете проверить ориентацию и, соответственно, выполнить некоторые задачи, то есть запустить другой код в зависимости от ориентации.

  2. Обычное поведение состоит в том, что при изменении ориентации система убивает действие и создает новый.Вы можете предотвратить это с помощью android:configChanges="orientation" в манифесте своей активности.В этом случае вам необходимо переопределить метод onConfigurationChanged(..), который будет вызываться при изменении.См. Обработка изменений во время выполнения.

...