2016-07-06 40 views
5

Tôi có một vấn đề thay đổi Menu Item Tiêu đề Color trong Navigation Drawer tôi đặt itemTextColor nhưng nó chỉ thay đổi Color của Items không phải là Title của menu.Navigation Drawer Menu Item Màu Tiêu Đề trong Android

Đây là tôi 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> 

Kiểm tra này:This is the one i am talking about

Trả lời

19

Để cung cấp cho Menu mục titlecolortextSize Tạo theo cách này ..

thêm tệp này vào tệp styles.xml của bạn.

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

bây giờ trong activity_main_drawer.xml tập tin cung cấp cho idattribute-title ..

<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> 

nay Trong MainActivity.java tập tin sử dụng theo cách này ..

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); 

Nó sẽ thay đổi bạn toolscolor để RedTextSize đến 20sp .. Thực hiện nó ..

Trong trường hợp đầu ra của tôi:

enter image description here

+1

Cảm ơn bạn, tôi cũng cần điều đó –

3

Bạn cũng có thể xác định phong cách mới trong styles.xml:

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

và sau đó áp dụng phong cách này trong NavigationView của chủ đề:

<android.support.design.widget.NavigationView 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:theme="@style/NavigationView" /> 
Các vấn đề liên quan