it-swarm.com.de

Navigationselement Menüelement Titelfarbe in Android

Ich habe ein Problem beim Ändern des Menüelementtitels Color im Navigation Drawer Ich habe die itemTextColor eingestellt, aber es ändert sich nur die Color der Elemente, nicht die Title des Menüs.

Hier ist meine 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>

Überprüfen Sie dies: This is the one i am talking about

9
RoyalCediee

Geben Sie Menu item titlecolor und textSize diesen Weg ein.

fügen Sie dies Ihrer styles.xml-Datei hinzu.

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

jetzt in activity_main_drawer.xml-Datei idattribute zu title geben.

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

jetzt in MainActivity.Java-Datei diesen Weg verwenden ..

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

Ihre toolscolor wird in Red und TextSize in 20sp geändert. Implementieren Sie es ..

In meinem Fall Ausgabe:

 enter image description here

27
Ironman

Sie können in style.xml auch einen neuen Stil definieren:

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

und dann diesen Stil im NavigationView-Design anwenden:

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

Einfach hinzufügen app:itemTextColor="@color/accent -Eigenschaft in Ihrem Navigationsansichtstag wie unten.

<com.google.Android.material.navigation.NavigationView
    Android:id="@+id/nav_view"
    Android:layout_width="wrap_content"
    Android:layout_height="match_parent"
    Android:backgroundTint="@color/primary"
    Android:layout_gravity="start"
    Android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer"
    app:itemTextColor="@color/accent"/>
<style name="AppTheme.NavigationView">
    <item name="Android:textColorSecondary">@color/colorPrimaryDark</item>
    <item name="Android:textSize">20sp</item>
</style>

Setzen Sie textSize, wenn Sie auch die Titelgröße ändern möchten

0
Hanoch Moreno