Android9.0 BottomNavigationView设

2019-12-29  本文已影响0人  512DIDIDI

BottomNavigationView默认是有icon+title的形式。可以通过覆盖其dimen属性,使其只显示icon居中效果,如下:

<!--BottomNavigationView设置图标居中无title 复写其size方案-->
<dimen name="design_bottom_navigation_text_size" tools:override="true">0sp</dimen>
<dimen name="design_bottom_navigation_active_text_size" tools:override="true">0sp</dimen>
<dimen name="design_bottom_navigation_height" tools:override="true">48dp</dimen>
<dimen name="design_bottom_navigation_margin" tools:override="true">12dp</dimen>

在Android9.0以下设备可以正常使用,但在Android9.0测试中,发现会出现如下错误信息:

Caused by: java.lang.IllegalArgumentException: Cannot set 'scaleX' to Float.NaN
E/AndroidRuntime:     at android.view.View.sanitizeFloatPropertyValue(View.java:16557)

无法设置一个NaN数到scaleX变量上

解决方案很简单,只要把design_bottom_navigation_text_sizedesign_bottom_navigation_active_text_size
的覆盖方案改为大于0的数就行了:

<!--BottomNavigationView设置图标居中无title 复写其size方案-->
<dimen name="design_bottom_navigation_text_size" tools:override="true">0.1sp</dimen>
<dimen name="design_bottom_navigation_active_text_size" tools:override="true">0.1sp</dimen>
<dimen name="design_bottom_navigation_height" tools:override="true">48dp</dimen>
<dimen name="design_bottom_navigation_margin" tools:override="true">12dp</dimen>
android9.0设备运行效果图

(初步猜想应该是android9.0更新了代码 把这两个dimen值作为除数了吧。。。)

上一篇下一篇

猜你喜欢

热点阅读