Intereting Posts
Как добавить маржу между вкладками в TabLayout? Неудачное разрешение: Lcom / google / devtools / build / android / desugar / runtime / ThrowableExtension; Разработка Android в планшетном ПК Micromax Настройка параметров макета для элемента внутри галереи Неисправность воспроизведения песни в проигрывателе Google Music Измените сторону, которую текст появится на радиокнопке Почему андроид получает неправильный сертификат ssl? (Два домена, один сервер) GridLayout рушится на небольшом дисплее Как автоматически переключаться между страницами viewPager Тема Android Holo не включает несколько выпадающих элементов линейки Spinner Получите расширение файла из изображений, выбранных из галереи или камеры, в виде строки Динамическое поколение Midi и воспроизведение на Android: возможно? Кнопка входа в Google Android и кнопка Facebook sdk 4+ Proguard-project.txt не найден в студии Android Pinch для увеличения с помощью Osmdroid

Как получить список записей фрагмента 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"); } } 

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