2013-10-13 96 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工作得很好。