如何更改菜单文字大小

7

我曾尝试将样式改变成这样:

<item name="android:actionMenuTextAppearance">@style/MenuTextStyle</item>
<stylename="MenuTextStyle"parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textSize">16sp</item>
</style>

但是它确实起作用了。对不起我的英语不好。如果你知道的话,请告诉我。先谢谢了!


https://dev59.com/UYLba4cB1Zd3GeqPeW_y - IntelliJ Amiya
2个回答

9
在您的应用程序基础主题中添加以下项目:
<item name="android:actionMenuTextAppearance">@style/customActionBar</item>

然后按照以下方式定义customActionBar:
<style name="customActionBar" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Menu">
    <item name="android:textSize">16sp</item>
</style>

1
我在我的应用程序中使用工具栏,因此无法使用类似 xxx.ActionBar.menu 的样式。 - alanchen

5

在这里,您应该在onCreateOptionsMenu中从MenuItems获取文本并转换为SpannableStrings,通过RelativeSizeSpan相对于默认大小更改文本大小。如果您想输入绝对字体大小,请使用AbsoluteSizeSpan,例如18 dpi = AbsoluteSizeSpan(18,true):

public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater infl = getMenuInflater();
    infl.inflate(R.menu.menu_main, menu);
    for(int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
    SpannableString spanString = new SpannableString(menu.getItem(i).getTitle().toString());
        int end = spanString.length();
    spanString.setSpan(new RelativeSizeSpan(1.5f), 0, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    item.setTitle(spanString);
}
    return true;
}

现在给出解释。 - John Petrucci

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接