Android9.0 BottomNavigationView设置Icon居中无title出现Cannot set 'scaleX' to Float.NaN的解决方案

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值作为除数了吧。。。)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容