我如何将旧版设备(例如状态栏或操作栏的颜色)中导航栏的颜色/透明度从黑色更改为通用颜色?
是否可以使用AppCompat实现,还是只有在SDK 21上才能实现?
navigationBarColor
,或在原生 v21 主题中设置 android:navigationBarColor
。<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
...
<item name="navigationBarColor">#123456</item>
</style>
请注意,这在早期的Android系统(4.4或更早版本)上不起作用,因为此功能需要系统支持,而这并非该系统的情况。
https://developer.android.com/training/material/theme.html#StatusBar
navigationBarColor
,你必须在values-21中使用本地的v21 android:navigationBarColor
。 - ThanosFisherman还有一种编程方式:
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(getResources().getColor(R.color.DarkOrange));
window.setNavigationBarColor(getResources().getColor(R.color.red));
此外,要更改状态栏颜色,请添加以下行:
window.setStatusBarColor(getResources().getColor(R.color.green));
样式-v21
<resources>
<style name="Theme.DesignDemo" parent="Base.Theme.DesignDemo">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentNavigation">true</item>//translucent
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
</style>