因为大字体模式踩坑的经历及解决方案

126 阅读1分钟

一次砸金蛋抽奖活动业务,以弹窗形式弹出dialog,背景图和宽高由后端传给客户端,客户端在宽度固定的情况下(横向全屏-48dp)计算背景图view高度后进行设置大小,然后展示。

那么问题来了,用户如果设置了大字体模式(注意,不是显示大小,显示大小在部分机型上可以设置比如oppo,但是小米就不行),在设置xml大小的时候,直接使用dp及sp,那么dialog内部的元素及margin的大小,都会相应的变大,导致背景图大小不变的情况下(因为用的是px,所以大小是固定的不随着大字体模式变化而变化),内部元素展示都会出问题。

解决方案:

设置字体的时候大小单位不能用sp单位,sp会跟随用户设置的大小变化而变化,导致整体布局可能会显示不全,可以用dp。

如果在代码中设置,需要tab_item_text.setTextSize(TypedValue.COMPLEX_UNIT_DIP,16f)