Android Studio - 如何拥有一个透明的状态栏?

Android Studio - How to have a transparent status bar?

描述:

这是一个在此站点上提出的问题,但答案对我没有帮助。我只需要使状态栏透明,这就是我发现的:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

我已经试过了,它确实有效,但它也使底部操作栏变得透明(对于底部操作栏,我的意思是:)

如何只让顶部状态栏透明?

感谢阅读

您可以创建自定义主题来设置状态栏颜色。它适用于版本 21 及更高版本:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
         <!-- You can customize it by changing statusBarColor. -->
        <item name="android:statusBarColor">@color/pieces_cherry</item>
</style>

并且在您的清单中,您需要将其设置为您的应用主题

您可以检查 这个 post,因为它似乎正是您要找的东西。

不想在此处再次键入所有内容,但如果不满足所有条件,@Yunus 的回答可能无效,主要是 statusBarColor 的文档告诉您的内容。

The color for the status bar. If the color is not opaque, consider setting {@link android.view.View#SYSTEM_UI_FLAG_LAYOUT_STABLE} and {@link android.view.View#SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN}. For this to take effect, the window must be drawing the system bar backgrounds with {@link android.R.attr#windowDrawsSystemBarBackgrounds} and the status bar must not have been requested to be translucent with {@link android.R.attr#windowTranslucentStatus}. Corresponds to {@link android.view.Window#setStatusBarColor(int)}.

参考答案以设置那些必需的标志和样式,同时保持导航栏简单地不要添加 View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 标志,以防你在某些代码中有它。

祝你好运。