2017-02-10 4 views
0

Тот же код Тот же атрибут, но другой выход в элементе меню ящика! Я использую два эмулятора, один из которых - уровень API 19, а другой - уровень API 23, я выделил другой вид моего вывода. В меню ящика я использовал имя заголовка, цвет которого должен быть тем, что я ожидал, но он появляется в устройстве API 23, но не в API 19. И самое главное, как я могу настроить этот элемент заголовка, изменив его цвет (только отмеченная область не другие)Изменение цвета элемента заголовка в ящике

<android.support.design.widget.NavigationView 
      android:id="@+id/nav_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      android:background="#000" 
      android:fitsSystemWindows="true" 
      app:headerLayout="@layout/drawer_header_layout" 
      app:itemIconTint="@color/colorPrimaryDark" 
      app:itemTextColor="#FFFFFF" 
      app:menu="@menu/drawer_item"> 

This is for menu item ... 

xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
      android:id="@+id/essential" 
      android:checkable="false" 
      android:title="Essential"> 
      <menu> 
       <item 
        android:id="@+id/blood_group" 
        android:checkable="true" 
        android:icon="@drawable/blood" 
        android:title="Blood Group"> 

       </item> 
       <item 
        android:id="@+id/respected_halls" 
        android:checkable="true" 
        android:icon="@drawable/home" 
        android:title="Respected Halls"> 

       </item> 

https://i.stack.imgur.com/doaFM.pnghttps://i.stack.imgur.com/nmWjq.png

+0

Вы можете иметь пользовательский вид в меню для заголовка. –

+0

такой же, как '' android: background'' для цвета текста существует '' android: foreground''. Мое приложение работает от API 17 до 25 без какой-либо модификации xml. – Grisgram

ответ

0

Там находятся два background настройки. См. XML ниже.

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    android:background="@color/colorPrimaryDark" <-- This changes what you want 
    app:headerLayout="@layout/nav_header_main" 
    app:itemBackground="@color/colorPrimaryDark" <-- This changes items bg 
    app:itemTextColor="@color/mbar_default_foreground_color" 
    app:itemIconTint="@color/mbar_default_foreground_color" <-- recolor icons 
    app:menu="@menu/activity_main_drawer"/> 

Короче

android:background изменения фона элементов заголовка

app:itemBackground фон элементы навигации

app:itemTextColor цвет переднего плана для элементов навигации

app:itemIconTint значок цвета

пункты меню для этого организованы следующим образом: (Это просто, чтобы помочь в комментариях ниже)

<item android:title="@string/main_menu_section_music"> 
    <menu> 
     <item 
      android:id="@+id/main_menu_item_live_in_concert" 
      android:icon="@drawable/icon_main_menu_live" 
      android:title="@string/main_menu_live"/> 
     <item 
      android:id="@+id/main_menu_item_playlists" 
      android:icon="@drawable/icon_main_menu_playlists" 
      android:title="@string/main_menu_playlists"/> 
     <item 
      android:id="@+id/main_menu_item_albums_lyrics" 
      android:icon="@drawable/icon_main_menu_albums" 
      android:title="@string/main_menu_albums"/> 
     <item 
      android:id="@+id/main_menu_item_youtube" 
      android:icon="@drawable/icon_main_menu_youtube" 
      android:title="@string/main_menu_youtube"/> 
    </menu> 
</item> 

Приветствия, надеюсь, что это помогает

+0

Это не сработало. –

+0

Странно. Я сделал это в своем текущем приложении, чтобы перекрасить элементы, показанные на картинке. Вы используете стандартный NavigationView, не так ли? И это в порядке ? Отправьте свой полный xml, пожалуйста. – Grisgram

+0

Я обновил свой ответ с помощью структуры меню, которую я использовал для организации элементов. Прошу прощения, но это работает. Просто изменил цвет для удовольствия (сейчас я работаю над этим приложением) до желтого, и мое меню стало желтым. – Grisgram

0
1. <android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/drawer_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true"> 

     <include 
      layout="@layout/co_ordinator_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

     <android.support.design.widget.NavigationView 
      android:id="@+id/nav_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      android:background="#FFF" 
      android:fitsSystemWindows="true" 
      app:headerLayout="@layout/drawer_header_layout" 
      app:itemIconTint="@color/colorPrimaryDark" 
      app:itemTextColor="#000" 
      app:menu="@menu/drawer_item"> 

     </android.support.design.widget.NavigationView> </android.support.v4.widget.DrawerLayout> 
+0

Хорошо - я не уверен в #FFF как цвет ... это действительно работает? Я знаю их как 6 (без альфы) или 8 (с альфой) в длину. Никогда не видел FFF. Если это работает, хорошо, тогда я чему-то научился, но я всегда делаю #FFFFFF для белого, # FF0000 для красного (на самом деле, я использую ресурс @color и никогда не кодирую цвета, но в любом случае). Попробуйте с полным #FFFFFF. – Grisgram

+0

любопытно. Я еще не видел трехзначные цветовые коды, но, видимо, они - вещь http://stackoverflow.com/questions/3108860/how-to-use-3-digit-color-codes-rather-than-6- значные-цветовые коды-в-CSS. ... но не уверен, что Android их принимает. – trooper