Фрагмент не вызывает onSaveInstanceState при прокрутке ViewPager?

У меня проблема с ViewPager, где мой ListView теряет позицию прокрутки.

Состояние ListView можно легко сохранить и восстановить с помощью:

@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) 
{
    View v = inflater.inflate(R.layout.frag_cool_things, container, false);

    AdvListView listView = (AdvListView) v.findViewById(R.id.lv0);
    listView.setOnItemClickListener( mOnListItemClicked );

    if (null != savedInstanceState)
    {
        listView.onRestoreListViewInstanceState(savedInstanceState.getParcelable("list_state"));
    }

    mListView = listView;

    return v;
}

@Override
public void onSaveInstanceState (Bundle outState) 
{
    super.onSaveInstanceState(outState);

    outState.putParcelable("list_state", mListView.onSaveListViewInstanceState());
}

Однако проблема в том, что при прокрутке фрагментов onDestroyView() вызывается, но никогда не вызывается onSaveInstanceState (Bundle outState).

Поворот экрана и тому подобное восстанавливает состояние ListView просто отлично, но при пролистывании я не могу понять, как правильно восстановить список.

7
задан Håvard Geithus 17 December 2011 в 14:47
поделиться