将状态栏更改为白色

我正在尝试仅在一项活动中将状态栏颜色更改为白色,但图标几乎不显示:

http://img.mukewang.com/618ca7d3000107e409180220.jpg

我正在使用此代码:


 Window window = getWindow();

 window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

 window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

 window.setStatusBarColor(Color.TRANSPARENT);

我无法更改 ColorPrimaryDark,因为我已经为所有应用程序设置了一种颜色。


提前致谢。


编辑


我在评论一个初学者的错误。这有一个非常简单的解决方案,只需为清单文件中的此活动设置一个主题:


android:theme="@style/Theme.AppCompat.Light.NoActionBar"

正如@shahab 所说,我的 Activity 上的这个 java 代码是:


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

    Window window = getWindow();

    window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

    window.setStatusBarColor(Color.TRANSPARENT);

}


UYOU
浏览 142回答 3
3回答

沧海一幻觉

更改状态栏颜色仅适用于棒棒糖上方的 android1.您可以通过此行以编程方式更改状态栏颜色:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {&nbsp; &nbsp; getWindow().setStatusBarColor(ContextCompat.getColor(context, R.color.your_color));}2.您可以使用平滑过渡动画来做到这一点:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {&nbsp; &nbsp; int startColor = getWindow().getStatusBarColor();&nbsp; &nbsp; int endColor = ContextCompat.getColor(context, R.color.your_color);&nbsp; &nbsp; ObjectAnimator.ofArgb(getWindow(), "statusBarColor", startColor, endColor).start();}3.或者您可以将其添加到 values/styles.xml 文件中的主题样式中。item colorPrimaryDark 将用于您的应用程序状态栏颜色<item name="colorPrimaryDark">@color/colorPrimaryDark</item>但是要将状态栏图标颜色更改为深色,您可以使用 SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 标志,该标志可用于 M 以上的 androidif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {&nbsp; &nbsp; getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);}或将其添加到您的主题样式 xml:<item name="android:windowLightStatusBar">true</item>

子衿沉夜

在onCreate()方法中使用它:getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);这适用于 API 23+。

狐的传说

Window window = getWindow();if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {&nbsp; &nbsp; window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);&nbsp; &nbsp; window.setStatusBarColor(Color.TRANSPARENT);}else {&nbsp; &nbsp; window.setStatusBarColor(Color.WHITE);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java