Android:更改子菜单父文本大小

Android:更改子菜单父文本大小,android,menu,size,navigation-drawer,Android,Menu,Size,Navigation Drawer,我的导航视图有以下菜单结构: <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/nav_clients" android:icon="@drawable/ic_group" android:tit

我的导航视图有以下菜单结构:

<menu xmlns:android="http://schemas.android.com/apk/res/android">

<group android:checkableBehavior="single">

    <item
        android:id="@+id/nav_clients"
        android:icon="@drawable/ic_group"
        android:title="@string/nav_clients"/>

    <item
        android:id="@+id/nav_products"
        android:icon="@drawable/ic_box"
        android:title="@string/nav_products" />

    <item
        android:id="@+id/nav_orders"
        android:icon="@drawable/ic_buy"
        android:title="@string/nav_orders" />

</group>

<item android:title="@string/nav_title_app">
    <menu>
        <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/ic_settings_black"
            android:title="@string/nav_settings" />

        <item
            android:id="@+id/nav_sync"
            android:icon="@drawable/ic_sync_black"
            android:title="@string/nav_sync" />
    </menu>
</item>

我已成功更改菜单项文本大小,但只有包含菜单的项没有更改大小?
有什么想法吗?

我还没有找到任何正式的方法来实现这一点,风格也没有,但你可以通过编程实现,请看下面

private void setMenuHeadTitleSize(int itemId) {

    Menu menu = mNavigationView.getMenu();

    MenuItem menuItem = menu.findItem(itemId);

    MenuItem subMenuItem = menuItem.getSubMenu().getItem();
    String title = String.valueOf(subMenuItem.getTitle());

    SpannableString mNewTitle = new SpannableString(title);
    mNewTitle.setSpan(new RelativeSizeSpan(1.1f), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    subMenuItem.setTitle(mNewTitle);
}
还要为子菜单项提供Id

<item android:id="@+id/nav_top"
    android:title="@string/nav_title_app">
    <menu>
        <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/ic_settings_black"
            android:title="@string/nav_settings" />

        <item
            android:id="@+id/nav_sync"
            android:icon="@drawable/ic_sync_black"
            android:title="@string/nav_sync" />
    </menu>
</item>

我还没有找到任何正式的方法来实现这一点,风格也没有,但您可以通过编程实现,请看下面

private void setMenuHeadTitleSize(int itemId) {

    Menu menu = mNavigationView.getMenu();

    MenuItem menuItem = menu.findItem(itemId);

    MenuItem subMenuItem = menuItem.getSubMenu().getItem();
    String title = String.valueOf(subMenuItem.getTitle());

    SpannableString mNewTitle = new SpannableString(title);
    mNewTitle.setSpan(new RelativeSizeSpan(1.1f), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    subMenuItem.setTitle(mNewTitle);
}
还要为子菜单项提供Id

<item android:id="@+id/nav_top"
    android:title="@string/nav_title_app">
    <menu>
        <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/ic_settings_black"
            android:title="@string/nav_settings" />

        <item
            android:id="@+id/nav_sync"
            android:icon="@drawable/ic_sync_black"
            android:title="@string/nav_sync" />
    </menu>
</item>

我还没有找到任何正式的方法来实现这一点,风格也没有,但您可以通过编程实现,请看下面

private void setMenuHeadTitleSize(int itemId) {

    Menu menu = mNavigationView.getMenu();

    MenuItem menuItem = menu.findItem(itemId);

    MenuItem subMenuItem = menuItem.getSubMenu().getItem();
    String title = String.valueOf(subMenuItem.getTitle());

    SpannableString mNewTitle = new SpannableString(title);
    mNewTitle.setSpan(new RelativeSizeSpan(1.1f), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    subMenuItem.setTitle(mNewTitle);
}
还要为子菜单项提供Id

<item android:id="@+id/nav_top"
    android:title="@string/nav_title_app">
    <menu>
        <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/ic_settings_black"
            android:title="@string/nav_settings" />

        <item
            android:id="@+id/nav_sync"
            android:icon="@drawable/ic_sync_black"
            android:title="@string/nav_sync" />
    </menu>
</item>

我还没有找到任何正式的方法来实现这一点,风格也没有,但您可以通过编程实现,请看下面

private void setMenuHeadTitleSize(int itemId) {

    Menu menu = mNavigationView.getMenu();

    MenuItem menuItem = menu.findItem(itemId);

    MenuItem subMenuItem = menuItem.getSubMenu().getItem();
    String title = String.valueOf(subMenuItem.getTitle());

    SpannableString mNewTitle = new SpannableString(title);
    mNewTitle.setSpan(new RelativeSizeSpan(1.1f), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    subMenuItem.setTitle(mNewTitle);
}
还要为子菜单项提供Id

<item android:id="@+id/nav_top"
    android:title="@string/nav_title_app">
    <menu>
        <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/ic_settings_black"
            android:title="@string/nav_settings" />

        <item
            android:id="@+id/nav_sync"
            android:icon="@drawable/ic_sync_black"
            android:title="@string/nav_sync" />
    </menu>
</item>