更改导航栏颜色,Android

Mar*_*ino 6 java xml android

如何在前Lollipop设备中将导航栏的颜色/透明度从黑色更改为通用颜色(例如状态栏或操作栏的颜色)?

我可以使用AppCompat来实现,还是仅适用于SDK 21?

Flo*_*ern 10

您可以navigationBarColor在AppCompat主题或android:navigationBarColor本机v21主题中设置属性.

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    ...
    <item name="navigationBarColor">#123456</item>
</style>
Run Code Online (Sandbox Code Playgroud)

https://developer.android.com/training/material/theme.html#StatusBar

请注意,这不适用于Pre-Lollipop设备,因为系统需要支持此功能,而Android 4.4或更早版本则不支持此功能.

  • 我得到`找不到与给定名称匹配的资源:attr'navigationBarColor' (4认同)

Ter*_*ogy 5

另一种编程方式:

window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(getResources().getColor(R.color.DarkOrange));
window.setNavigationBarColor(getResources().getColor(R.color.red));
Run Code Online (Sandbox Code Playgroud)

此外,要更改状态栏颜色,请添加以下行:

window.setStatusBarColor(getResources().getColor(R.color.green));
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢,window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 是我所缺少的东西。 (4认同)