現在很多應用都引用了沉浸式狀態欄,如QQ,效果下圖:
效果很酷炫,其實設置也很簡單。但是,需要注意的是,這種效果只能在API19以及以上版本中才能夠做到。
方法一:
首先,如果想讓界面Activity中實現這種效果,在 setContentView(R.layout.XX); 方法之前加入以下代碼:
if(VERSION.SDK_INT>= VERSION_CODES.KITKAT) { //透明狀態欄 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明導航欄 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }
注意:VERSION_CODES.KITKAT 就是API19的名稱,只有手機系統 SDK 版本大於19,才執行判斷中的代碼,才能顯示沉浸狀態欄的效果。
若要去掉默認標題欄,繼承自Activity的如下:在setContentView(R.layout.XX);之前加如代碼:requestWindowFeature(Window.FEATURE_NO_TITLE);繼承自 AppCompatActivity 的需要更換 android:theme="@style/AppTheme.NoActionBar" 主題。
其次,API 改為 19 以上,Layout 根標簽添加背景顏色。
注意:
此種方式設置,第二層標簽為內容所在,內容會從屏幕最頂端開始展現,這樣若最頂端有內容狀態欄會造成遮擋,若要從狀態欄下開始展現內容,需在布局文件的根標簽中添加
android:clipToPadding="true"
android:fitsSystemWindows="true"
方法二:
在res目錄下面新建一個values-v19文件夾,下面新建一個styles.xml文件,內容如下
當然這樣還得在布局文件的根標簽中添加
android:clipToPadding="true"
android:fitsSystemWindows="true"
如果不添加這段代碼的話,布局就會靠着屏幕頂部,造成遮擋。
在AndroidManifest.xml 下的application 標簽引用values-v19文件夾的styles.xml