本文介绍一种简单的实现沉浸式状态栏的方法,要高于或等于api19才可以。
实现android沉浸式状态栏很简单,添加代码两步就可以搞定。
一.在activity中添加
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//透明状态栏
例如:
1 public class MainActivity extends AppCompatActivity { 2 3 private RadioGroup rg; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 10 rg=(RadioGroup)super.findViewById(R.id.rg); 11 12 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 13 14 } 15 16 }
二. 我们要达到这种效果一般使用的是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白色
所以只需要在最上方的控件中添加代码即可
原文:http://www.cnblogs.com/LYSHIXD/p/6286806.html