繁体   English   中英

在android中对齐中心菜单项文本

[英]Align Center Menu Item text in 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>

但是菜单文本仍然不在中间。 如何让它居中?

您可以在活动中使用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);

实现这一目标的另一种方法是通过设置主题

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

看起来如何

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM