2014-02-01 4 views
0

У меня есть фрагмент с несколькими видами. Два из них являются обычными: назовем их FrameLayoutA и FrameLayoutB. Проблема в том, что FrameLayoutB не сохраняет состояние, когда возвращаюсь к фрагменту.Сохранение состояния нескольких видов во фрагменте

Там нет onSaveInstanceState/onRestoreInstanceState/setRetainInstance/onRetainNonConfigurationInstance/getLastNonConfigurationInstance метод называется/перегружен, ни в FrameLayoutA/FrameLayoutB классов, ни в классе фрагмента.

Невозможно найти причину, по которой состояние одного вида сохраняется, а другое - нет. Есть идеи? Я что-то упускаю?

UPDATE:

Остановился отладчик на onCreateView() и, видимо, мое восстановленное значение в inflater ->mChildFragment ->mSavedViewState. inflater имеет тип org.holoeverywhere.LayoutInflater. Все еще ищете ответ, почему некоторые взгляды сохранены, но не другие.

UPDATE:

Итак, есть два мои пользовательские представления, который завышенные же расположение внутри них. В макете есть EditTexts с объявленными идентификаторами. Таким образом, View.dispatchRestoreInstanceState() восстанавливает значения в обоих представлениях из значений во втором представлении. Поэтому, когда я возвращаюсь к фрагменту, оба моих пользовательских представления имеют одинаковые значения.

+0

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

+0

Идентификаторы разные. – ViliusK

+0

Отладка далее и заметила, что эти значения сохраняются в 'inflater'. Обновление вопроса. – ViliusK

ответ

0

Если вы хотите изменить фрагмент, вы сделаете это:

getSupportFragmentManager().beginTransaction() 
       .addToBackStack(Fragment.class.getName()) 
       .**add**(R.id.content_fragment, fragment, Fragment.class.getName()) 
       .commit(); 

Вызов «добавить» вместо «заменить», и когда вы вернетесь к исходному фрагменту состояние фрагмента это нормально.

Эта работа для меня, надеюсь, что его помощь :)

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

  • Нет связанных вопросов^_^