web-dev-qa-db-ja.com

ナビゲーションドロワーメニュー項目のタイトルの色Android

メニュー項目のタイトルColorの変更に問題がありますNavigation DraweritemTextColorを設定しましたが、メニューのColorではなく、アイテムのTitleのみを変更します。

ここに私の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

15
RoyalCediee

Menuアイテムを与えるにはtitlecolorおよびtextSizeを作成します。

これを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);

toolscolorRedに、TextSize20spに変更します。実装します。

私の場合の出力:

enter image description here

30
Ironman

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" />
17
madim

以下のように、ナビゲーションビュータグにapp:itemTextColor="@color/accentプロパティを追加するだけです。

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

タイトルサイズも変更する場合は、textSizeを設定します

0
Hanoch Moreno