Open KeWeize opened 5 years ago
设备型号:redmi 5、mi 8
redmi 5、mi 8
设备系统版本: MUI 10.1(Android 7.1.2) 、 MUI 10.2.1(Android 8.0.0)
MUI 10.1(Android 7.1.2) 、 MUI 10.2.1(Android 8.0.0)
QMUITab 设置了 normalDrawable 和 selectedDrawable 之后,生成的 QMUITabIcon 在执行 selected 切换时会分别改变两个 drawable 的 alpha。如图中 Components Tab 被选中时,其 normalDrawable alpha 被设置为 0。这时候会导致,如果在其他地方使用这个 drawable 对应的资源图片时,比如在 mImageView.setImageResource(R.mipmap.icon_tabbar_component_normal),会出现设置的 Drawable 是透明的(这貌似是 Android 本身的问题,setImageResource(R.mipmap.icon_tabbar_component_normal) 时生成的 drawable 貌似复用了内存中被 QMUITabIcon 改变了 alpha 的 drawable)。
调用一下 drawable.mutate() 就好
drawable.mutate()
.setNormalDrawable(normalDrawable.mutate()) .setSelectedDrawable(selectedDrawable.mutate())
大佬666... 不过是否在 QMUITabBuilder或者QMUITabIcon加会好点?
恩,后面会补上这个
运行环境
设备型号:
redmi 5、mi 8
设备系统版本:
MUI 10.1(Android 7.1.2) 、 MUI 10.2.1(Android 8.0.0)
具体问题描述
QMUITab 设置了 normalDrawable 和 selectedDrawable 之后,生成的 QMUITabIcon 在执行 selected 切换时会分别改变两个 drawable 的 alpha。如图中 Components Tab 被选中时,其 normalDrawable alpha 被设置为 0。这时候会导致,如果在其他地方使用这个 drawable 对应的资源图片时,比如在 mImageView.setImageResource(R.mipmap.icon_tabbar_component_normal),会出现设置的 Drawable 是透明的(这貌似是 Android 本身的问题,setImageResource(R.mipmap.icon_tabbar_component_normal) 时生成的 drawable 貌似复用了内存中被 QMUITabIcon 改变了 alpha 的 drawable)。
问题截图