2014-12-12 3 views
0

Android предоставляет пользователю навигацию, используя обратно значок или значок на ActionBarAndroid Navigate внутрь фрагмента Activity в

getActionBar().setDisplayHomeAsUpEnabled(true); 

и AndroidManifest.xml имеет

 <!-- 
     since 4.0 
     android:parentActivityName=".MainActivity" > 
     --> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value=".activity.MainActivity" /> 

Теперь, если моя активность имеет 3 фрагмента 1-2- 3, как включить обратную навигацию, чтобы вернуться назад 3-> 2-> 1?

Когда пользователь нажимает назад, как перейти к предыдущему фрагменту, а не к активности?

ответ

4

Вы можете поместить фрагмент по имени. Добавляя фрагменты в задний стек, просто дайте им имя.

fragmentTransaction.addToBackStack("fragB"); 
fragmentTransaction.addToBackStack("fragC"); 

Тогда в Fragment_C, вытолкнуть обратно стек, используя имя есть .. fragB и включают POP_BACK_STACK_INCLUSIVE

someButtonInC.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     FragmentManager fm = getActivity() 
       .getSupportFragmentManager(); 
     fm.popBackStack ("fragB", FragmentManager.POP_BACK_STACK_INCLUSIVE); 
    } 
}); 
0

Обратите внимание, что вы можете иметь несколько доступных фрагментов внутри приложения. Поэтому вам нужны надежные и безошибочно решение. Я нашел полное и объясненное решение на странице Managing the Fragment Back Stack с соответствующим кодом в GitHub.