Назад навигация к последнему фрагменту
У меня есть два фрагмента в моем ViewPager как вкладки. Они разделяют панель инструментов. Вы попадаете в настройки настроек, щелкая значок на панели инструментов. Таким образом, вы можете получить доступ к SettingsActivity, когда либо фрагмент A является видимым, либо фрагмент B является видимым. Когда я возвращаюсь от SettingsActivity к фрагментам, нажимая кнопку "Вверх" на панели инструментов (actionBar.setDisplayHomeAsUpEnabled(true);), я хочу, чтобы фрагмент был видимым, который я видел при доступе к SettingsActivity. Без какого-либо специального кода (= текущее состояние) кажется, что он всегда возвращается к первому фрагменту в ViewPager (то есть к самому левому). Родительское действие для навигации вверх - это MainActivity, где у меня есть ViewPager с двумя фрагментами в виде вкладок.
2 ответа
Сохраните свой фрагмент в backstack. Таким образом, кнопка "Назад" для фрагментов будет работать так же, как и для действий.
Здесь: http://developer.android.com/training/implementing-navigation/temporal.html
Используйте функцию обратного вызова для сохранения состояния, чтобы сохранить состояние вашей MainActivity:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("SELETED_TAB_INDEX", mSelectedTabIndex);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState != null) { // so the activity is being restarted
pager.setCurrentItem(savedInstanceState.getInt("SELETED_TAB_INDEX"));
}
}