如何隱藏Android4.0及以上版本的ActionBar、NotificationBar、StatusBar、SystemBar、TitleBar

1.ActionBar:

        <activity android:name="Demo"
                  android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

2.TitleBar
隱藏:
requestWindowFeature(Window.FEATURE_NO_TITLE);
或者
android:theme="@android:style/Theme.Black.NoTitleBar
顯示:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

3.NotificationBar、StatusBar、SystemBar

Dim的話可以:

getWindow().getDecorView().setSystemUiVisibility
  (View.SYSTEM_UI_FLAG_LOW_PROFILE);
隱藏的話可以(不好使,哈哈):

getWindow().getDecorView().setSystemUiVisibility
  (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

那怎麼玩呢?用狠招吧,哈哈:

命令行方式:

直接用進程號殺,不加service那個shell的話,一會SystemBar會自啟動。
# kill com.android.systemui

# service call activity 79 s16 com.android.systemui

如果想啟動SystemBar:
# am startservice -n com.android.systemui/.SystemUIService

代碼方式:
要root啊,

Process proc = Runtime.getRuntime().exec(new String[]{"su","-c","service call activity 79 s16 com.android.systemui"});
proc.waitFor();

Process proc = Runtime.getRuntime().exec(new String[]{"am","startservice","-n","com.android.systemui/.SystemUIService"});
proc.waitFor();

 

摘自 forlong401的專欄

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *