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 的关于多返回栈的博文,详细讲解了多返回栈的处理

猜你喜欢

转载自blog.csdn.net/dpdcsdn/article/details/117810881
今日推荐