У меня есть основная активность с BottomNavigationView. в первой вкладке BottomNavigationView у меня есть фрагмент. щелчком пользователя я открываю два фрагмента следующим образом:
fragmentManager.beginTransaction()
.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left,R.anim.slide_out_right)
.replace(R.id.mainFragmentContainer, FinancialFragment.newInstance(),"FinancialFragment")
.addToBackStack("FinancialFragment")
.commit()
с другим тегом. когда пользователь нажимает на каждую нижнюю кнопку навигации, я извлекаю все фрагменты из стека следующим кодом:
val fragments = supportFragmentManager.fragments
val manager = supportFragmentManager
val trans = manager.beginTransaction()
var fragmentList = readFragmentsNameFromAssets()
for (i in fragments.size - 1 downTo 0) {
val fragment = fragments[i]
if( fragment.tag ==fragmentList[0] || fragment.tag == fragmentList[1] || fragment.tag ==fragmentList[2] || fragment.tag ==fragmentList[3] || fragment.tag ==fragmentList[4] || fragment.tag ==fragmentList[5]
|| fragment.tag ==fragmentList[6] || fragment.tag ==fragmentList[7] || fragment.tag ==fragmentList[8] || fragment.tag ==fragmentList[9] || fragment.tag ==fragmentList[10] || fragment.tag ==fragmentList[11]
|| fragment.tag ==fragmentList[12] || fragment.tag ==fragmentList[13] || fragment.tag ==fragmentList[14] || fragment.tag ==fragmentList[15] || fragment.tag ==fragmentList[16]
|| fragment.tag ==fragmentList[17] || fragment.tag ==fragmentList[18] || fragment.tag ==fragmentList[19] ){
trans.remove(fragment).commit()
manager.popBackStack(fragment.tag, FragmentManager.POP_BACK_STACK_INCLUSIVE)
}
}
У меня проблема: когда я открываю два последовательных фрагмента, размер supportFragmentManager.fragments равен одному и кажется, что второй фрагмент не добавляется в стек и не всплывает, поэтому, когда я нажимаю кнопку bottomNaigation, просто возвращаемся к предыдущему фрагменту.