#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 был слишком преждевременным. Транзакция не гарантирует счастья сразу после того, как вы совершили