android中的狀態欄

google的api demos,代碼
https://github.com/android/platform_development/blob/master/samples/ApiDemos/src/com/example/android/apis/view/SystemUIModes.java#L321


一、全屏,不顯示狀態欄

  • 方法一,在manifest文件中
<activity
    android:name="com.ysj.demo.MainActivity"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />


        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
  • 方法二,在代碼中設置
    注意在setContentView之前調用
// 隱藏標題欄
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 隱藏狀態欄
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

在activity的布局文件的根節點設置android:fitsSystemWindows="true",是為系統的view留出空間,狀態欄會在activity布局上方(相當于順序排列),設置為false,狀態欄會覆蓋在activity上(相當于頂部對齊)。
設置FLAG_FULLSCREEN,就是設置不顯示狀態欄,如果顯示,根據fitsSystemWindows設置顯示位置。


二、動態顯示和隱藏狀態欄

 //顯示系統狀態欄
    private void showStatusBar() {
 
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//隱藏狀態欄的布局
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//內容布局填滿屏幕
        );
 
    }
 
    //隱藏系統狀態欄
    private void hideStatusBar() {
 
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//隱藏狀態欄的布局
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//內容布局填滿屏幕
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//隱藏狀態欄
                        | View.SYSTEM_UI_FLAG_FULLSCREEN//內容全屏展示
                        | View.SYSTEM_UI_FLAG_IMMERSIVE
        );
    }

三、狀態欄透明

API 19 添加的FLAG_TRANSLUCENT_STATUS

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

四、設置狀態欄顏色

API 21 添加的方法

window.setStatusBarColor(int color);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,422評論 25 708
  • 自從android4.4開始,android手機狀態欄再也不是一成黑的時代,之前叫做變色龍,miui6發布會把他叫...
    HeLe小子拽閱讀 83,712評論 89 308
  • 前言 原文:http://blog.csdn.net/mybeta/article/details/5076032...
    naturs閱讀 23,173評論 8 70
  • 感賞:自己愛上了寫感賞日記!越寫越喜歡!越寫越有力量!感覺好棒哦! 感賞:吸引一個朋友非常喜歡我的性格:可以包容我...
    櫻木蘭閱讀 180評論 0 1
  • 讀書時候條件一般,卻沒有阻攔住向往旅行的心;暑假跟著父母坐了12個小時到大巴去看一看不一樣的城市;大學里翹過課去周...
    Arthur張閱讀 216評論 0 0