本文介绍一种简单的实现沉浸式状态栏的方法,要高于或等于api19才可以。
实现android沉浸式状态栏很简单,添加代码两步就可以搞定。
一.在activity中添加
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//透明状态栏
例如:
public class MainActivity extends AppCompatActivity { private RadioGroup rg; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); rg=(RadioGroup)super.findViewById(R.id.rg); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } }
二. 我们要达到这种效果一般使用的是NoActionBar,所以在最顶部的控件代码里添加
android:fitsSystemWindows="true"
android:clipToPadding="true"
例如:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="vertical">
<TextView
android:fitsSystemWindows="true"
android:clipToPadding="true" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#f00"
android:text="android沉浸式状态栏"
android:textSize="25sp"/>
注意:
1.如果我们不在xml中添加代码,就会造成控件和状态栏重合的情况
2.如果我们在上述代码中的LinearLayout中添加代码,会造成状态栏是LinearLayout的背景色,我设置的是#fff白色
所以只需要在最上方的控件中添加代码即可