首页 > 解决方案 > 如何更改导航组项目大小

问题描述

我在导航抽屉中有 2 组菜单项。这是我的 menu.xml 文件。

<group
        android:id="@+id/pages"
        android:checkableBehavior="single">

        <item
            android:id="@+id/mHomePage"
            android:icon="@drawable/ic_baseline_home_24"
            android:title="@string/home" />

        <item
            android:id="@+id/mAboutFragment"
            android:icon="@drawable/ic_about"
            android:title="@string/about_us" />

        ...
    </group>

    <group
        android:id="@+id/actions"
        android:checkableBehavior="none">

        <item android:id="@+id/mActionShare"
            android:title="@string/share_the_app"
            android:icon="@drawable/ic_baseline_share_24"/>

        ...
    </group>

碰巧第二组的文本比第一组大。我想专门使第二组的文本大小更小。我该如何做到这一点?

标签: androidandroid-navigationview

解决方案


为了满足您的需求,您需要使用SpannableString

    SpannableString spannableString = new SpannableString(navigationView.getMenu().getItem(0).getTitle());
    spannableString.setSpan(new TextAppearanceSpan(this, R.style.TextStyle), 0, spannableString.length(), 0);
    navigationView.getMenu().getItem(0).setTitle(spannableString);

如您所见,getItem方法需要一个菜单​​项索引:

  • item HomePage的索引为 0
  • 项目AboutFragment的索引为 1
  • ActionShare的索引为 2

创建一个样式并将其命名为TextStyle

 <style name="TextStyle">
        <item name="android:textSize">10sp</item> //SPECIFY YOUR TEXT SIZE
 </style>

推荐阅读