Не добавляется при фиксации транзакции фрагмента

#android #kotlin #android-fragments

Вопрос:

как название,

Я прикрепил фрагмент содержимого к фрагменту пустого,

хотя фрагмент содержимого отображается на экране,

но contentFragment.isAdded все равно false .

почему? Неужели я не смог прикрепиться?

Я использую следующие зависимости:

     implementation "androidx.navigation:navigation-fragment:2.3.3"
    implementation "androidx.navigation:navigation-ui:2.3.3"
    implementation "androidx.navigation:navigation-fragment-ktx:2.3.3"
    implementation "androidx.navigation:navigation-ui-ktx:2.3.3"
 

мой код:

 class BlankFragment : Fragment() {

    companion object {
        fun newInstance() = BlankFragment()
    }

    private lateinit var binding:BlankFragmentBinding
    private lateinit var viewModel: BlankViewModel
    private var contentFragment: Fragment?=null

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View {
        binding = BlankFragmentBinding.inflate(inflater, container, false)
        contentFragment=ContentFragment.new()
        showPlaying()
        Log.e("nesl",contentFragment!!.isAdded.toString())
        return binding.root
    }


    private fun showPlaying(){
        parentFragmentManager.commit {
            if(contentFragment!!.isAdded){
                Log.e("nesl","added, show it")
                show(contentFragment!!)
            }else{
                Log.e("nesl","not added, adding it")
                val tag=contentFragment!!::class.java.name
                add(
                    binding.container.id,
                    contentFragment!!,
                    tag
                )
                addToBackStack(tag)
            }
        }
    }
}
 

Комментарии:

1. это потому, что ваш звонок для проверки isAdded был слишком преждевременным. Транзакция не гарантирует счастья сразу после того, как вы совершили