在安卓系统中对齐中心菜单项文本

2022-09-04 20:39:55

使用以下代码

<item 
    android:id="@+id/text"
    android:title="@string/mainMenu"
    android:enabled="false"
    android:layout_gravity="center">
</item>

我有一个样式定义为

<style name="MenuTextStyle" parent="@android:style/TextAppearance.Medium">
    <item name="android:textColor">6F6B6B</item>
    <item name="android:gravity">center_horizontal</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textSize">14sp</item>

但菜单文本仍然不在中间。如何让它以中间为中心?


答案 1

您可以在活动中使用动态居中对齐菜单项:SpannableString

int positionOfMenuItem = 0; //or any other postion
MenuItem item = menu.getItem(positionOfMenuItem);
SpannableString s = new SpannableString(settingsItemTitle);

s.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_CENTER), 0, s.length(), 0);

item.setTitle(s);

答案 2

我用@Mahm00d的方式,这很完美,但我找到了另一种方法来解决问题。它是在字符串之前添加的。如果空间不够,我可以添加更多。\t

因为中文单词是逐个的,所以项目的长度是相同的。


推荐