После двух последовательных addToBackStack размер supportFragmentManager.fragments равен одному

У меня есть основная активность с 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()

с другим тегом. когда пользователь нажимает на каждую нижнюю кнопку Naigation, я извлекаю все фрагменты из стека с помощью этого кода:

   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, просто возвращаюсь к предыдущему фрагменту.

Ну, вы запускаете только одну транзакцию, и кто знает, сколько вы пытаетесь зафиксировать

EpicPandaForce 04.11.2018 12:41
2
1
48
0

Другие вопросы по теме