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

在Kotlin应用中遇到底部导航标签切换Fragment时出现问题,尽管代码执行无误且有日志输出,Fragment却在某点停止切换。当前使用的是支持库版本25.2.0。尝试显示、隐藏或添加Fragment,但并未成功。考虑Fragment可能过重,计划转向轻量级Fragment,但认为这不是主要问题。寻求解决Fragment不切换的其他方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个带有底部导航标签的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,而不需要重新创建它们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值