private fun switchFragment(targetFragment: AvatalkBaseFragment, tag:String) {
kotlin.runCatching {
LogUtils.d("FaceFragment switchFragment tag:$tag")
val beginTransaction = childFragmentManager.beginTransaction()
if (mCurrentFragment != targetFragment) {
mCurrentFragment?.let {
beginTransaction.hide(it)
}
if (targetFragment.isAdded) {
beginTransaction.show(targetFragment)
} else {
val fragmentByTag = childFragmentManager.findFragmentByTag(tag)
if (fragmentByTag != null) {
beginTransaction.show(fragmentByTag)
} else {
beginTransaction.remove(targetFragment).commitAllowingStateLoss()
beginTransaction.add(com.mesa.android.im.uikit.R.id.faceContainer, targetFragment, tag)
}
}
} else {
if (!targetFragment.isAdded) {
val fragmentByTag = childFragmentManager.findFragmentByTag(tag)
if (fragmentByTag != null) {
beginTransaction.show(fragmentByTag)
} else {
beginTransaction.remove(targetFragment).commitAllowingStateLoss()
beginTransaction.add(com.mesa.android.im.uikit.R.id.faceContainer, targetFragment, tag)
}
}
}
mCurrentFragment = targetFragment
beginTransaction.commitAllowingStateLoss()
}.getOrElse {
LogUtils.printStackTrace(it)
}
}
版权声明:本文为lujianfeiccie2009原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。