我的导航视图有这个菜单结构:
<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>
我已经成功更改了菜单项文本大小,但只有包含菜单的项目没有改变大小? 有什么想法吗?
答案 0 :(得分:3)
我没有找到任何正式的方式,既不是风格,也可以通过编程方式实现,请看下面。
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);
}
同时为您的SubMenu项目提供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>
最后,一旦NavigationView膨胀,并附上菜单,请调用上面的函数
setMenuHeadTitleSize(R.id.nav_top);