android - 如何更改导航组项目大小
问题描述
我在导航抽屉中有 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 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>
推荐阅读
- python - Do actions on database object in Django Template
- node.js - 如何在 Mongoose/MongoDB 中执行 $or 查询?
- mysql - 在 Objection.js 中按类型获取帖子?
- excel - 在 Excel 中爆炸(和内爆)骰子
- javascript - Turn array into objects in javascript
- android - Android 10 - 我想在外部存储上获取所有音频文件
- pytorch - 迭代地附加一维张量以生成二维张量
- html - 最大高度过渡仅在一个方向上起作用
- nestjs - 如何在 ServeStaticModule 中定义路径前缀?
- c# - 为什么这个 ListView 不与 ObservableCollection 元素绑定?