既然遇到此问题,那么BottomNavigationView的作用就不多介绍了。

当图标小于等于3个时,显示的是图标加文字。

当图标大于3个时,显示图标和当前页的文字。

最新版BottomNavigationView 3个以上图标不显示文字解决方法     最新版BottomNavigationView 3个以上图标不显示文字解决方法

网上搜索使用反射的方法,修改BottomNavigationMenuView的shiftMode属性 https://www.jianshu.com/p/0ba25cc65889

遗憾的是我的代码中BottomNavigationItemView类并没有setShiftingMode方法

最新版BottomNavigationView 3个以上图标不显示文字解决方法

进入到BottomNavigationMenuView类中查看onMeasure方法,发现这个版本中判断方法已经改为isShifting

最新版BottomNavigationView 3个以上图标不显示文字解决方法

最新版BottomNavigationView 3个以上图标不显示文字解决方法

由isShifting方法可见,当labelVisibilityMode==0时或按钮数大于3则位移,那么只要将labelVisibilityMode值设置为不是0和-1就可以了。回到BottomNavigationView类,可以使用setLabelVisibilityMode方法设置labelVisibilityMode值

最新版BottomNavigationView 3个以上图标不显示文字解决方法

最新版BottomNavigationView 3个以上图标不显示文字解决方法

在Activity中修改显示方式

最新版BottomNavigationView 3个以上图标不显示文字解决方法

结果

最新版BottomNavigationView 3个以上图标不显示文字解决方法

另外补充下我的AS版本为3.3.1。build.gradle的dependencies配置 

implementation 'com.android.support:design:28.0.0'

相关文章: