2013-10-13 131 views
7

居中,菜單項文本使用下面的代碼在android系統

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

但菜單的文字依然沒有在中間。如何使它在中間?

回答

9

可以居中對齊您的活動動態使用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); 
+0

這完美地工作,謝謝! – kevinkl3

+0

注:這只是水平中心 – Guihgo

0

另一種方式來實現這一目標是通過設置主題

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

在您的樣式

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

How it looks like

0

我搜索的問題,發現這個page.used @ Mahm00d的方式,即工作perfectly.but終於讓我找到另一種方式來解決problem.It是: 添加\ t時的字符串之前,如果空間不夠,我可以添加更多。

因爲中國字是一個接一個,所以該項目的長度是一樣。這方法ALSE工作得很好。