Android 之 沉浸式狀態欄及頂部狀態欄背景色設置


  現在很多應用都引用了沉浸式狀態欄,如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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM