Обычно Android View
s сохраняет свое состояние при вращении.То же самое происходит, например, с EditText
.Если вы что-то введете, а затем поверните устройство, текст будет сохранен.
Это делается внутри определенного класса View
.
Но как это состояние сохраняется при изменении ориентации?Например, в Деятельности у вас есть onSaveInstanceState(Bundle bundle)
.Этот метод вызывается системой до изменения конфигурации.Чтобы сохранить состояние Activity
, вы должны хранить внутри bundle
значения, которые хотите сохранить.Затем, когда Activity
создается снова, этот bundle
возвращается вам, например, в методе onCreate
.Таким образом, вы можете восстановить свое состояние.
А как же View
с?Они используют похожий механизм.Если мы хотим детали, мы должны смотреть на исходный код.Давайте посмотрим на исходный код из ProgressBar
.Оказывается, у View
тоже есть onSaveInstanceState
( эта строка ).Вы можете видеть, что прогресс сохраняется.
Надеюсь, это прояснит механизм.