Как получить список записей фрагмента backstack в android?

Я работаю над приложением, в котором вкладки реализованы с помощью FragmentActivity . Так как вкладки требуются во всем приложении, фрагменты широко используются, чтобы сделать приложение совместимым со всеми версиями android.

Как следствие, я сталкиваюсь с проблемой визуализации того, какие фрагменты присутствуют в задней части. Я уверен, что есть способ получить список фрагментов, присутствующих в backstack . Благодарю.

Solutions Collecting From Web of "Как получить список записей фрагмента backstack в android?"

У FragmentManager есть методы:

getBackStackEntryCount ()

GetBackStackEntryAt (индекс int)

 FragmentManager fm = getFragmentManager(); for(int entry = 0; entry < fm.getBackStackEntryCount(); entry++){ Log.i(TAG, "Found fragment: " + fm.getBackStackEntryAt(entry).getId()); } 

Если вы хотите проверить, какой фрагмент виден, и если вы знаете идентификатор представления, где размещен фрагмент, сначала вам нужно добавить ниже в onCreate ()

  getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() { @Override public void onBackStackChanged() { Fragment f = getSupportFragmentManager().findFragmentById(R.id.content_frame); if (f != null){ updateActionBarTitle(f); } } }); private void updateActionBarTitle(Fragment fragment) { String fragClassName = fragment.getClass().getName(); if (fragClassName.equals(FirstFragment.class.getName())) { setTitle("Home"); } else if (fragClassName.equals(SecondFragment.class.getName())) { setTitle("Second"); } } 

Это приведет к обновлению заголовка панели действий в прослушивателе изменений стека.