J'ai un problème pour changer le titre de l'élément de menu Color
dans le Navigation Drawer
J'ai défini la itemTextColor
mais cela ne change que la Color
des éléments et non la Title
du menu.
Voici mon 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>
Pour donner Menu
item title
color
et textSize
Créez de cette façon ..
ajoutez ceci à votre fichier styles.xml
.
<style name="TextAppearance44">
<item name="Android:textColor">#FF0000</item>
<item name="Android:textSize">20sp</item>
</style>
maintenant dans le fichier activity_main_drawer.xml
donne id
attribute
à 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>
maintenant, dans le fichier MainActivity.Java
, utilisez cette méthode.
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);
Cela changera votre tools
color
en Red
et TextSize
en 20sp
.. Mettez-le en œuvre ..
Dans mon cas, sortie:
Vous pouvez également définir un nouveau style dans styles.xml:
<style name="NavigationView">
<item name="Android:textColorSecondary">@color/white</item>
</style>
puis en appliquant ce style dans le thème de NavigationView:
<Android.support.design.widget.NavigationView
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="start"
Android:theme="@style/NavigationView" />
<style name="AppTheme.NavigationView">
<item name="Android:textColorSecondary">@color/colorPrimaryDark</item>
<item name="Android:textSize">20sp</item>
</style>
Définissez textSize si vous souhaitez également modifier la taille du titre.