2017-06-30 123 views
0

我想更改組合menuitem的文字顏色。改變文本顏色主菜單android?

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_mi_cuenta" 
      android:icon="@mipmap/ic_mi_cuenta" 
      android:title="@string/mi_cuenta" /> 
    </group> 

    <item android:title="@string/herramientas"> 
     <menu> 
      <item 
       android:id="@+id/nav_configuracion" 
       android:icon="@mipmap/ic_config" 
       android:title="@string/configuraci_n" /> 
     </menu> 
    </item> 

</menu> 

我wnat來改變文字顏色:

<item android:title="@string/herramientas"> 

enter image description here

正如你所看到的,Herramientas出來,在黑色和作爲背景也幾乎看起來黑色。我找不到任何財產來改變它。所述item「誤DATOS」和「Configuración」改變它的顏色編程方式從一個服務器的外部JSON文件如下:

colorElegido = getParseColor(json.getString("colorMenuLateral")); 
navigationView.setBackgroundColor(colorElegido); 

colorElegido = getParseColor(json.getString("colorFuenteMenuLateral")); 
ColorStateList colorList = getColorList(colorElegido); 

navigationView.setItemTextColor(colorList); 
+0

你有沒有試過這個https://stackoverflow.com/questions/32042794/changing-text-color-of-menu-item-in-navigation-drawer –

+0

選擇這個 - [stackoverflow.com/a/32114570]( https://stackoverflow.com/a/32114570/6244429) –

+0

不工作對我來說@SunishaSindhu –

回答

3

下面的代碼將鍛鍊,

menu.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_mi_cuenta" 
       android:icon="@mipmap/ic_mi_cuenta" 
       android:title="@string/mi_cuenta" /> 
     </group> 

     <item 
android:id="@+id/herramientas" 
android:title="@string/herramientas"> 
      <menu> 
       <item 
        android:id="@+id/nav_configuracion" 
        android:icon="@mipmap/ic_config" 
        android:title="@string/configuraci_n" /> 
      </menu> 
     </item> 

    </menu> 

在您的樣式添加此,

<style name="TextAppearance44"> 
    <item name="android:textColor">#FF0000</item> 
    <item name="android:textSize">20sp</item> 
</style> 
<style name="NavigationDrawerStyle"> 
    <item name="android:textSize">16sp</item><!-- text size in menu--> 
    <item name="android:textColor">#880ACE0A</item> 
    <item name="itemTextColor">#880ACE0A</item> 
</style> 

而且在你R活性,

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     Menu menu = navigationView.getMenu(); 

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

根據您更改,

而且你可以在XML文件中使用像其他文本的顏色變化,

<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" 
    style="@style/NavigationDrawerStyle" 
    app:headerLayout="@layout/nav_header_main" 
    app:menu="@menu/activity_main_drawer" /> 
1

,以使自定義popup做出ImageViewtoolbar

private ImageView setting; 

public void menuOptions() { 
    PopupMenu popup = new PopupMenu(MainActivity.this, setting); 
    // Inflating the Popup using xml file 
    popup.getMenuInflater() 
      .inflate(R.menu.menu_main, popup.getMenu()); 

    //registering popup with OnMenuItemClickListener 
    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
     public boolean onMenuItemClick(MenuItem item) { 

      switch (item.getItemId()) { 
       case R.id.button1: 

        return (true); 
       case R.id.button2: 
        // block contacts 

        return (true); 
      } 

      return true; 
     } 
    }); 

    popup.show(); //showing popup menu 
} 

on Button點擊以上功能呼叫

menuOptions(); 

在佈局中你膨脹menu_main.xml,使你想要的視圖。