從https://developer.android.com/training/material/theme.html#StatusBar開始,我有很多關於如何讓狀態欄透明但不太多運氣的試驗和錯誤。Android 5.0半透明狀態欄
我不想抽屜式導航只是一個平面,簡單的活動與半透明的狀態欄像他們展示在http://www.google.com/design/spec/style/imagery.html#imagery-best-practices
這裏是我的設計
<style name="AppTheme" parent="android:Theme.Material.NoActionBar">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowActionBar">false</item>
<!-- your app branding color for the app bar -->
<item name="android:colorPrimary">@android:color/transparent</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@android:color/transparent</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:fitsSystemWindows">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
</style>
和代碼在Java
getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().getAttributes().flags &= (~WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().setStatusBarColor(Color.TRANSPARENT);
getWindow().getDecorView().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);
我已經經歷了很多stackoverflow的答案,包括使用ScrimInsetsFrameLayout,但似乎沒有達到像fol一樣簡單的東西降低確切的規則
您也可以自己在狀態欄後面繪製。例如,如果要在照片上透明地顯示狀態欄,並使用細微的黑色漸變來確保白色狀態圖標可見。爲此,請將android:statusBarColor屬性設置爲@android:color/transparent並根據需要調整窗口標誌。您還可以使用Window.setStatusBarColor()方法進行動畫或淡入淡出。注意:狀態欄應該總是從主要工具欄清楚地描述,除非您在這些欄後顯示邊緣到邊緣的豐富圖像或媒體內容,並且您使用漸變來確保圖標仍然可見。