1

我有一个带有溢出菜单的操作栏。在那个溢出菜单中,我在每个项目中都有文本。目前这些项目左对齐。我希望它们通过 XML 对齐到溢出菜单的中心。

下面是我的themes.xml - 在“myCustomMenuTextApearance”样式中,我使用了“gravity”属性,但它不起作用。当我将“重力”属性移动到“MyAppActionBarTheme”样式时,它工作的项目是居中的,而且我在我的 Activity 布局中拥有的所有 TextView 的其余部分也是如此。这根本不是我想要的。

我找到了这些链接,但没有找到任何帮助:1. https://stackoverflow.com/questions/22702588/align-items-inside-of-a-menu-coming-from-actionbar

如何在操作栏溢出菜单中对齐菜单项文本

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

<?xml version="1.0" encoding="utf-8"?>

<style name="MyAppActionBarTheme" parent="android:Theme.Holo.Light">
    <item name="android:popupMenuStyle" tools:targetApi="11">@style/MyApp.PopupMenu</item>
    <item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item>
    <item name="android:actionBarStyle" tools:targetApi="11">@style/MyApp.ActionBar</item>

</style>

<!-- The beef: background color for Action Bar overflow menu -->
<style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
    <item name="android:popupBackground">@drawable/ab_menu_bkg</item>

</style>

<style name="myCustomMenuTextApearance" parent="@android:style/TextAppearance.Widget.TextView.PopupMenu">
    <item name="android:textColor">@color/red</item>
    <item name="android:gravity">center_horizontal</item>
</style>

<!-- Bonus: if you want to style whole Action Bar, not just the menu -->
<style name="MyApp.ActionBar" parent="android:Widget.Holo.Light.ActionBar.Solid">

    <!-- Blue background color & black bottom border -->
    <item name="android:background">@color/red</item>
</style>

任何帮助将不胜感激。

4

1 回答 1

0

您可以在活动中使用 SpannableString 动态居中对齐菜单项:

`int positionOfMenuItem = 0; //或任何其他职位

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);`

于 2017-10-05T12:17:40.293 回答