如何更改菜单文本大小

ala*_*hen 6 android menu text-size

我曾尝试改变这样的风格:

<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>
Run Code Online (Sandbox Code Playgroud)

但它确实有效.对不起我的英语不好.如果你知道的话,请告诉我.先感谢您!

VjL*_*xmi 9

在应用程序的基本主题中,添加以下项:

<item name="android:actionMenuTextAppearance">@style/customActionBar</item>
Run Code Online (Sandbox Code Playgroud)

然后定义customActionBar,如下所示:

<style name="customActionBar" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Menu">
    <item name="android:textSize">16sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)


Joh*_*cci 5

在这里,您应该从onItemOptionsMenu中的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;
}
Run Code Online (Sandbox Code Playgroud)