在我的应用程序中,我需要更改底部导航栏颜色。我看了许多帖子,但无法找到解决方案。我正在使用appCompat库。
V21 / styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:windowBackground">@drawable/bgpreview</item>
<item name="android:colorPrimary">@color/MyColor</item>
<item name="android:colorPrimaryDark">@color/MyColor</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:textColorPrimary">@color/MyColor</item>
<item name="colorAccent">@color/MyColor</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
<item name="windowActionBar">false</item>
<item name="android:textAllCaps">false</item>
</style>
它可以在styles.xml中使用
<item name="android:navigationBarColor">@color/theme_color</item>
要么
window.setNavigationBarColor(@ColorInt int color)
http://developer.android.com/reference/android/view/Window.html#setNavigationBarColor(int)
请注意,该方法是在Android Lollipop中引入的,不适用于API版本<21。
第二种方法(适用于KitKat)是在清单中将windowTranslucentNavigation设置为true,并在导航栏下方放置一个彩色视图。
以下是以编程方式执行的操作:
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.your_awesome_color));
}
使用Compat库:
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}
以下是如何在values-v21 / style.xml文件夹中使用xml:
<item name="android:navigationBarColor">@color/your_color</item>
以下是一些更改导航栏颜色的方法。
通过XML
1- values-v21 / style.xml
<item name="android:navigationBarColor">@color/navigationbar_color</item>
或者,如果您只想使用值/文件夹,那么 -
2- values / style.xml
<resources xmlns:tools="http://schemas.android.com/tools">
<item name="android:navigationBarColor" tools:targetApi="21">@color/navigationbar_color</item>
您还可以通过编程更改导航栏颜色。
if (Build.VERSION.SDK_INT >= 21)
getWindow().setNavigationBarColor(getResources().getColor(R.color.navigationbar_color));
通过使用Compat库 -
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}
请找到更多详细信息的链接 - http://developer.android.com/reference/android/view/Window.html#setNavigationBarColor(int)
您可以在values-v21 / style.xml文件夹中添加以下行:
<item name="android:navigationBarColor">@color/theme_color</item>
您还可以使用主题编辑器修改主题,方法是:
工具 - > Android - >主题编辑器
然后,您甚至不需要在.xml或.class文件中添加一些额外的内容。
您可以直接在styles.xml文件\ app \ src \ main \ res \ values \ styles.xml中更改它
这是旧版本的工作,我在KitKat中更改它并来到这里。
<color name="blackColorPrimary">#000001</color> (not #000000)
<item name="android:navigationBarColor" tools:targetApi="lollipop">@color/blackColorPrimary</item>
问题是android更高版本对#000000透明