2016-03-09 2 views
4

Из того, что я прочитал, что активность автоматически сохранит состояние просмотров и что-то вроде EditText и TextView автоматически восстановит их состояние.savedInstanceState - изменения видимости не восстановлены?

Не распространяется ли это на видимость?

Например: Если по умолчанию в XML, у меня есть вид TextView. Если я программно установить TextView в GONE используя tvInput.setVisibility(View.GONE);

Если активность воссоздан, то tvInput не поддерживается, как GONE теперь видно, когда оно не должно быть.

Ожидается ли такое поведение? Должен ли я сам обрабатывать видимость обзора?

+0

Имея ту же самую проблему. Измененное значение EditText сохраняется и восстанавливается, но не изменяется видимость. Я закончил тем, что восстановил видимость в onRestore ... Не читал много документации по этому вопросу и довольно ржавчив, когда дело доходит до android dev, я предполагаю, что есть некоторая логика для этого ... –

ответ

0

Вы установили идентификатор для вашего TextView в вашем XML-файле? Только просмотры с идентификаторами будут автоматически восстановлены. Кроме того, если вы перекрывая onSaveInstanceState (...) и/или onRestoreInstanceState (...), не забудьте начать с вызова метода суперкласса:

super.onSaveInstanceState(...); 

super.onRestoreInstanceState(...); 

Помните также, что в OnCreate (...) ваши взгляды еще не восстановлены. Они восстанавливаются позже.

+0

Да, у меня должны быть идентификаторы для них поскольку я программно устанавливаю их в «View.GONE». Я вызываю 'super.onSaveInstanceState', но у меня нет переопределенного метода экземпляра восстановления, поэтому он должен вызывать метод super. – Alan

+0

Имея ту же самую проблему. Измененное значение EditText сохраняется и восстанавливается, но не изменяется видимость. –

Смежные вопросы