Android P 手动适配异形屏 的一些问题

为了手动适配异形屏,让状态栏剩余区域更为美观,想优化下显示。
一开始先设置

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | SYSTEM_UI_FLAG_FULLSCREEN);
			WindowManager.LayoutParams lp = getWindow().getAttributes();
			lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
			getWindow().setAttributes(lp);

但是没有作用。

后来在布局文件中,

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:app="http://schemas.android.com/apk/res-auto"
	xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:background="#00000000"
	android:fitsSystemWindows="true"
	tools:context=".FocusingActivity">
	<......>
</androidx.constraintlayout.widget.ConstraintLayout>

发现android:fitsSystemWindows="true"这句话很可疑
后遂删除,改之为android:fitsSystemWindows="false",过

这是其他文章里对这个属性的介绍:

fitsSystemWindows属性可以让view根据系统窗口来调整自己的布局;简单点说就是我们在设置应用布局时是否考虑系统窗口布局,这里系统窗口包括系统状态栏、导航栏、输入法等,包括一些手机系统带有的底部虚拟按键。

也就是说,设置android:fitsSystemWindows="true"后,系统会给某些view自动加上padding,在状态栏下方的View则自动添加等同于状态栏高度的paddingTop,虚拟键上方的view自动添加等同于虚拟键高度的paddingBottom。既然我们要手动适配异形屏效果,自然就要关闭这一属性了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值