android fragment 不显示,android FragmentTransaction隐藏/显示有时无法工作_android_开发99编程知识库...

我有一个带有底部导航标签的Activity,它正在改变 Fragments 中的。 当我在这些标签上来回单击时,在某一点上它停止工作。 代码执行得很好,因为我放入了一些日志。 但是 Fragments 没有被交换。

代码在kotlin中,但它是相当直接的。fun showTabFragment(tag: String) {

val currentFragment: Fragment? = supportFragmentManager.fragments?.lastOrNull()

var fragment = supportFragmentManager.findFragmentByTag(tag)

val fragmentExists = fragment!= null

if (fragment == null) {

when (tag) {

TAG_LOGBOOK -> fragment = LogbookFragment()

TAG_RECIPES -> fragment = RecipesFragment()

TAG_PROFILE -> fragment = ProfileFragment()

else -> fragment = MeetingPlacesFragment()

}

}

val transaction = supportFragmentManager.beginTransaction()

if (currentFragment!= null) {

Log.i("jacek","hiding" + currentFragment.javaClass.simpleName)

transaction.hide(currentFragment)

}

if (fragmentExists) {

Log.i("jacek","showing" + fragment.javaClass.simpleName)

transaction.show(fragment)

} else {

Log.i("jacek","adding" + fragment.javaClass.simpleName)

transaction.add(R.id.container, fragment, tag)

}

transaction.commit()

}

Fragments 很重。 我会尝试一些轻量级的,但这不应该是我的观点中的问题。 还有什么我可以尝试的?

我正在使用最新的支持库- 25.2.0也不感兴趣替换 Fragments,而不需要重新创建它们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值