BottomNavigationView 切换刷新当前页面解决方案

环境

Android Studio 4.2.1 编译版本 30

问题描述

使用 FragmentContainerView 和 BottomNavigationView 作为Tab 切换架构,点击 tab 时,当前Fragment页面也会重新刷新,导致页面会出现闪烁,而且需要特别处理刷新。

问题分析

通过 Android Studio 模板新建的项目,运行发现问题同样存在。查找网络,也发现有反映同样问题,并给出了处理。
通过谷歌提供的示例 NavigationAdvancedSample 则没有出现同样情况。

问题解决

根据网络上博文表示后续版本可能会解决这个问题,比对了依赖文件,发现我是用的依赖是:

    implementation 'androidx.navigation:navigation-fragment:2.3.5'
    implementation 'androidx.navigation:navigation-ui:2.3.5'
    implementation 'androidx.navigation:navigation-runtime:2.3.5'

版本为 2.3.5.
而谷歌示例版本用的是 2.4.0-alpha01.
更新依赖后,问题解决。

更新

1、2021-12-30
有留言表示更新依赖后,仍然会重建。这是正常的,具体请参见参考文献2。
我这篇博客只是说明,原版本 Fragment 重建会导致页面闪烁,而新版本则解决了闪烁问题。

参考文献

1 谷歌官方Github 库中的示例 提供了很好的学习范本,值得推荐
2 Flywith24 的关于多返回栈的博文,详细讲解了多返回栈的处理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值