像IOS一样,状态栏透明,和应用背景重叠,与应用统一颜色样式
在android4.4之前,是没有这种效果的,状态栏默认都是黑色,状态栏与应用都是分开的,在4.4之后,也就是api19以上(包括19)才有这种效果,沉浸模式的状态栏可以设置透明,与应用背景合为一体,这样增加了视觉效果
先看下图片效果
下面的订单文本与状态栏有点重叠了,等下我们在讲解
下面先讲一种简单直接的方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明导航栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
直接在onCreate方法里加入这两行代码,对应的xml代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#ff0000" />
<Button
android:layout_width="100dp"
android:layout_height="50dp"
android:background="#ff669d"/>
</LinearLayout>
在第一个textview中写入文本时会出现上面截图那样,文本会与状态栏重叠,只要在该textview中添加:
android:fitsSystemWindows="true"
android:clipToPadding="true"
这样就可以避免了
还有一种方法,我觉得这种方法更好一点,是从