华为折叠屏从小屏启动APP,SHOW一个Dialog,显示问题

最近适配华为折叠屏的时间,遇到一个很坑的问题?

1、UI设计如下:打开一个Activity从底部弹出Dialog,横屏的时候从右侧弹出Dialog,并右侧弹出Dialog宽为屏幕的一半

如果杀死APP进程,从这折叠屏展开的到进入,是没问题的,界面显示正常,但是如果杀死进程,从折叠状态的屏幕进入,UI显示就有异常,DIalog显示横屏的时候右侧弹出的Dialog,原本设置的是为屏幕的一半,但是显示的没有屏幕的一半。

多种测试,后来发现无论设置Dialog的宽高,横屏显示的是一样,大概为华为手机竖屏显示的一半(因为华为折叠屏,竖屏显示,分屏显示),我猜测可能是折叠屏打开,windows最大宽度为折叠屏的宽度,切换横屏的时候,windows宽不变。

解决方法:1、切换屏幕的时候,重新设置windows的宽高和dialog的宽高

//设置Window的宽高,防止华为折叠屏折叠状态,打开APP,横屏状态下,显示不全
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.width = mScreenHeight/2;
lp.height = DPIUtil.getDefaultDisplay().getHeight();
getWindow().setGravity(Gravity.RIGHT|Gravity.TOP);
getWindow().setAttributes(lp);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值