2016-07-06 161 views
5

我改变菜单项标题ColorNavigation Drawer一个问题,我设置itemTextColor但它只是改变了项目的Color菜单的不是Title抽屉式导航栏菜单项标题颜色在Android中

这里是我的 activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

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

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer" 
     app:itemTextColor="#ffffff" 
     android:background="#283135" 
     /> 


</android.support.v4.widget.DrawerLayout> 

activity_main_drawer.xml

<?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_home" 
      android:icon="@mipmap/hospital" 
      android:title="Home" 
      /> 
<item 
      android:id="@+id/nav_reminder" 
      android:icon="@mipmap/alarm" 
      android:title="Reminders" /> 

    </group> 

    <item android:title="Tools"> 
     <menu> 
      <item 
       android:id="@+id/nav_settings" 
       android:icon="@mipmap/settings" 
       android:title="Settings" /> 
      <item 
       android:id="@+id/nav_help" 
       android:icon="@mipmap/information" 
       android:title="Help" /> 
      <item 
       android:id="@+id/nav_about" 
       android:icon="@mipmap/team" 
       android:title="About Us" /> 
     </menu> 
    </item> 

</menu> 

检查:This is the one i am talking about

回答

19

为了给MenutitlecolortextSize创建这样..

添加到您的styles.xml文件。

<style name="TextAppearance44"> 
     <item name="android:textColor">#FF0000</item> 
     <item name="android:textSize">20sp</item> 
</style> 

现在activity_main_drawer.xml文件给idattributetitle ..

<item android:title="Tools" 
     android:id="@+id/tools"> 
     <menu> 
      <item 
       android:id="@+id/nav_settings" 
       android:icon="@mipmap/settings" 
       android:title="Settings" /> 
      <item 
       android:id="@+id/nav_help" 
       android:icon="@mipmap/information" 
       android:title="Help" /> 
      <item 
       android:id="@+id/nav_about" 
       android:icon="@mipmap/team" 
       android:title="About Us" /> 
     </menu> 
    </item> 
现在

MainActivity.java文件使用这种方式..

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

     Menu menu = navigationView.getMenu(); 

     MenuItem tools= menu.findItem(R.id.tools); 
     SpannableString s = new SpannableString(tools.getTitle()); 
     s.setSpan(new TextAppearanceSpan(this, R.style.TextAppearance44), 0, s.length(), 0); 
     tools.setTitle(s); 
     navigationView.setNavigationItemSelectedListener(this); 

它会改变你的toolscolorRedTextSize20sp ..实现它..

在我的情况下输出:

enter image description here

+1

谢谢,我也需要那个 –

3

您还可以在styles.xml定义新的风格:

<style name="NavigationView"> 
    <item name="android:textColorSecondary">@color/white</item> 
</style> 

,然后在NavigationView的运用这种风格主题:

<android.support.design.widget.NavigationView 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:theme="@style/NavigationView" />