Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Align Center Menu Item text in android

Using following code

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

I have a style defined as

<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>

But the menu text still is not in the middle. How to make it center in middle?

like image 561
Muhammad Umar Avatar asked Oct 13 '13 10:10

Muhammad Umar


2 Answers

I used @Mahm00d's way, that worked perfectly, but I found another way to solve the problem. It is to add \t before the String. If the space isn't enough, I can add more.

Because Chinese words are one by one, the length of the item is same.

like image 64
张松波 Avatar answered Sep 24 '22 09:09

张松波


You can center-align the menu items dynamically using SpannableString in your activity:

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);
like image 25
Mahm00d Avatar answered Sep 23 '22 09:09

Mahm00d