2017-12-30 36 views
-1

Ich habe ein Standardprojekt erstellt und versucht, Farben zu ändern. Es ist mir gelungen, alle Farben außer denen der Artikelkategorie ("Kommunizieren" in diesem Beispiel) zu ändern. Wie kann ich es ändern?Navigationsschublade: Wie ändert man die Farbe der Artikelkategorie?

enter image description here

activity_main

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:itemTextColor="@color/colorAccent" 
    app:itemIconTint="@color/colorAccent" 
    android:backgroundTint="@color/colorPrimaryDark" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_main" 
    app:menu="@menu/activity_main_drawer"/> 

nav_header_main

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/nav_header_height" 
    android:background="#FF0000" 
    android:gravity="bottom" 
    android:orientation="vertical" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark"> 
+0

Bitte posten Sie Ihre volle activity_main und nav_header_main sowie Ihren Stil. – Yuliwee

+0

Die Frage verbunden und seine Antworten waren über die Änderung der Artikelfarbe, nicht die Kategorie Farbe, aber es gab [eine Antwort] (https://Stackoverflow.com/a/37315464/455796), die erklärt, wie man das macht. Es änderte 'android: textColorSecondary' mit Stil. –

Antwort

0

Versuchen Sie, diese

ein Thema erstellen wie dieses

<style name="MyTheme"> 
    <item name="android:textColor">#0000ff</item> 
</style> 

als Ihr Menü wie dieses

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/nav_camera" 
      android:icon="@drawable/ic_menu_camera" 
      android:title="Import" /> 
     <item 
      android:id="@+id/nav_gallery" 
      android:icon="@drawable/ic_menu_gallery" 
      android:title="Gallery" /> 
     <item 
      android:id="@+id/nav_slideshow" 
      android:icon="@drawable/ic_menu_slideshow" 
      android:title="Slideshow" /> 
     <item 
      android:id="@+id/nav_manage" 
      android:icon="@drawable/ic_menu_manage" 
      android:title="Tools" /> 
    </group> 

    <item android:title="Communicate" 
     android:id="@+id/communicate"> 
     <menu> 
      <item 
       android:id="@+id/nav_share" 
       android:icon="@drawable/ic_menu_share" 
       android:title="Share" /> 
      <item 
       android:id="@+id/nav_send" 
       android:icon="@drawable/ic_menu_send" 
       android:title="Send" /> 
     </menu> 
    </item> 


</menu> 

als Java-Code machen

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main3); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState(); 

     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 


     // code for changes colour of Communicate 
     Menu myMenu = navigationView.getMenu();  
     MenuItem tools= myMenu.findItem(R.id.communicate); 
     SpannableString s = new SpannableString(tools.getTitle()); 
     s.setSpan(new TextAppearanceSpan(this, R.style.MyTheme), 0, s.length(), 0); 
     tools.setTitle(s); 
     navigationView.setNavigationItemSelectedListener(this); 
    } 

Navigationsansicht

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:itemTextColor="@android:color/holo_orange_light" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_main3" 
    app:menu="@menu/activity_main3_drawer" /> 

OUTPUT

enter image description here

+0

Hat Ihre Antwort die Farbe von "Kommunizieren" geändert? Der Code ist zu lang, so kann ich leicht feststellen, ob es ist oder nicht. –

+0

@DamnVegetables ja es wird die Farbe von ** ändern ** – Prem

+0

@DamnVegetables haben Sie das Ausgabebild – Prem

Verwandte Themen