2013-10-13 17 views
7

Korzystanie następujący kodAlign Center tekst Element menu w android

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

Mam styl zdefiniowany jako

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

Ale tekst menu nie jest jeszcze w środku. Jak zrobić środek w środku?

Odpowiedz

9

Można wyśrodkować wyrównać elementy menu dynamicznie przy użyciu SpannableString w swojej działalności:

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); 
+0

To działało idealnie, dzięki! – kevinkl3

+0

Uwaga: to tylko środek w poziomie – Guihgo

0

Innym sposobem osiągnięcia tego celu jest poprzez ustawienie motywu

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    android:theme="@style/ThemeToolbar.NavigationViewPadding" 
    app:itemTextColor="@color/inverse_color" 
    app:itemIconTint="@color/inverse_color" 
    app:itemBackground="@drawable/selector_navigation" 
    app:headerLayout="@layout/activity_home_nav_header" 
    app:menu="@menu/activity_home_drawer" /> 

W swoich stylów

<style name="ThemeToolbar.NavigationViewPadding"> 
    <item name="listPreferredItemPaddingLeft">50dp</item> 
    </style> 

How it looks like

0

Przeszukałem to pytanie, znalazłem ten sposób page.used @ Mahm00d, który działał idealnie. Ale w końcu znajduję inny sposób rozwiązania problemu. Jest to: dodać \ t przed ciągiem, jeśli przestrzeń nie jest wystarczająca , Mogę dodać więcej.

ponieważ chińskie słowo jest jeden po drugim, więc długość elementu jest taka sama. W ten sposób alfa działa bardzo dobrze.

Powiązane problemy