华为全面屏问题解决

 

     线上有客户反映,app使用过程中,屏幕底部出现了黑屏或者系统桌面的内容,类似这样

会影响客户使用,并且效果不好,而我们期望的结果是这样的

    具体是因为:普通屏:纵横比为16:9,如1080x1920、1440x2560等,其比值为1.78,全面屏手机出现之前,Android中默认的最大屏幕纵横比(maximum aspect ratio)为1.86,即能够兼容16:9的屏幕。超过了1.86的纵宽比,系统展示就会有问题。

华为官方给的方案如下:

方案1:
AndroidManifest.xml 文件添加属性: <meta-data android:name="android.max_aspect" android:value="2.4" />
应用适配建议采用meta-data的方式,具体可以参考:https://developer.android.com/guide/practices/screens-distribution.html#MaxAspectRatio

方案2:
添加 android:resizeableActivity =“true”
此设置只针对Activity生效,且增加了此属性该activity也会支持分屏显示。

方案3:
修改AndroidManifest.xml文件,设置targetSdkVersion>=26,就是应用升级到O版本,不需要设置其他任何属性,默认在任何纵横比的屏幕都能全屏显示。(备注:有一种例外情况需要注意,应用如果已经适配到O版本,并且通过meta-data属性android.max_aspect或者是android:MaxAspectRatio属性设置了页面支持的最大纵横比,同时又通过android:resizeableActivity=“false”设置了页面不支持分屏,这个时候系统会按照应用自己设置的最大纵横比决定该页面是否能全屏显示,如果应用设置的最大纵横比比手机屏幕比例小,那应用还是无法全屏显示。)

华为建议首选方案3,将应用的API级别升级到O版本(targetSdkVersion>=26),这样在不同比例屏幕下,应用都能自适应全屏显示。但此方案对界面设计的要求也比较高,需保证界面拉伸到不同比例(16:9、18:9、18.9:9、19.5:9、21:9)时,都能正常显示。同时API级别升级到O版本,应用依赖的部分API功能升级,要做兼容性处理。

    方案三要考虑兼容处理,targetSdkVersion>=26网上有小伙伴写文章会有系统弹窗(悬浮窗)不生效、通知不生效需要考虑做兼容。

如果采用方案3的代价过大,建议采用方案1,将最大支持的纵横比设为2.4。这样可以兼容超宽屏产品,一次做好适配。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值