如何更改导航组项目大小

问题描述

我在导航抽屉中有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>

碰巧第二组的文本比第一组大。我想专门缩小第二组的文字大小。 我该怎么做?

解决方法

要满足您的需求,您需要使用 SpannableString spannableString = new SpannableString(navigationView.getMenu().getItem(0).getTitle()); spannableString.setSpan(new TextAppearanceSpan(this,R.style.TextStyle),spannableString.length(),0); navigationView.getMenu().getItem(0).setTitle(spannableString);

getItem

您可以看到 <style name="TextStyle"> <item name="android:textSize">10sp</item> //SPECIFY YOUR TEXT SIZE </style> 方法需要一个菜单​​项索引:

  • 首页项目的索引为0
  • 项目 AboutFragment 的索引为1
  • ActionShare 项目的索引为2

创建样式并将其命名为 TextStyle

<iframe>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...