通知欄,狀態列的隱藏與各種細節(坑)
阿新 • • 發佈:2019-02-09
5.0以上通知欄透明
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams .FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams .FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
window.setNavigationBarColor(Color.TRANSPARENT);
}
全屏(狀態列,通知欄全消失)
//隱藏標題欄
requestWindowFeature(Window.FEATURE_NO_TITLE);
//隱藏狀態列
getWindow().setFlags(WindowManager.LayoutParams .FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
或者設定主題為(NoTitleBar–去掉標題欄;Fullscreen–去掉狀態列):
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"
注意:
requestWindowFeature(Window.FEATURE_NO_TITLE);
無效解決辦法:
1.使用supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
2. 當activity繼承AppCompatActivity,可修改主題為:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
3. Activity直接繼承Activity即可
4. 隱藏狀態列也可以用:
getSupportActionBar().hide();
一旦用了包含AppCompat字樣的主題,那麼getActionBar()均為null,只能用getSupportActionBar()獲取actionBar物件,而且必須繼承AppCompatActivity才能使用getSupportActionBar()