选中NavigationView的颜色

时间:2015-08-05 12:53:42

标签: android android-layout android-design-library

通常,ItemTextColor和ItemIconTint会更改为android:colorPrimary然后检查,但为什么它会变为白色(Theme.AppCompat的主要颜色)而不是我的自定义原色?

style.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:colorPrimary">@color/color_primary</item>
    <item name="android:colorPrimaryDark">@color/color_primary_dark</item>
    <item name="android:colorAccent">@color/color_accent</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

<color name="color_primary">#3F51B5</color>
<color name="color_primary_dark">#303F9F</color>
<color name="color_accent">#FF4081</color>

activity_main.xml中:

<android.support.design.widget.NavigationView
    android:id="@+id/navigation"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:orientation="vertical"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/layout_drawer"
    app:menu="@menu/menu_drawer" />

1 个答案:

答案 0 :(得分:1)

AppCompat主题使用colorPrimary和没有android:前缀的相关属性。因此,如果将style.xml更改为以下内容,则应该可以正常工作。 (或者至少,它对我有用。)

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="colorAccent">@color/color_accent</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

<color name="color_primary">#3F51B5</color>
<color name="color_primary_dark">#303F9F</color>
<color name="color_accent">#FF4081</color>