ActionSherlockBar样式 - 弹出菜单

5
样式是我在Android平台知识方面需要提高的地方。尽管我一整个早上都试图进行简单更改,但却无法实现。
我想改变操作栏中溢出菜单的样式。我已经能够更改背景色并添加动画效果,以便当点击时它会淡化为所选颜色。但我就是无法更改文本颜色。
以下是两个屏幕截图,一个使用Theme.Sherlock,另一个使用Theme.Sherlock.Light。
Theme.Sherlock - 这是我当前的设置,我已经自定义了它。我想要的是溢出(又名android:popupmenu)使用Holo主题(如下图),最好可以更改文本颜色。
Theme.Sherlock.Light - 这个主题显示了我想要看到的溢出菜单样式。然而,如红色标记所示,溢出按钮的颜色不正确,而且这个主题还绘制了一条水平线。
我不知道是更改具有弹出问题的Theme.Sherlock更好/更容易,还是更改具有溢出图标和线条问题的Theme.Sherlock.Light更好。应用程序是“Light”主题,因此第二个选项可能是长期更好的选择,但我将接受任何可以通过更改任一主题来解决问题的答案。 p.s.在哪里可以找到更改主题/样式的属性列表,自动完成在eclipse中非常不完整。
更新:这实际上是针对本机操作栏的更新,因为我又回到了相同的问题,但不再支持2.3或以下版本。
<style name="AppTheme" parent="android:Theme.Holo.Light">
  <item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>

<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
  <item name="android:src">**Insert your icon here**</item>
</style>
4个回答

3

可能对于那些偶然发现这个问题的人来说,我的回答来得有点晚了。我觉得很有趣的是你能够改变溢出部分的背景颜色,而我却发现这非常难以解决,而改变文本则相对简单。只需在自定义主题中覆盖android:itemTextAppearance值即可。

<item name="android:itemTextAppearance">@style/your_new_text_appearance</item>

<style name="your_new_text_appearance">
    <item name="android:textColor">@color/red</item>
</style>

我们从未找到解决方案。但是我已经加入了另一家公司。下次见到其他开发人员时,我会转达您的答案。 - JonWillis
1
哦天啊,我无法为这个点赞足够了。尝试了数十种方法两天来改变那个颜色,终于找到了解决方案。 - Draiken

2

请按照下列步骤进行操作:

1. 在您的应用主题样式的theme.xml文件中添加以下内容:

<item name="popupMenuStyle">@style/PopupMenu</item>

2. 在styles.xml文件中添加以下新样式:

<style name="PopupMenu" parent="@style/Widget.Sherlock.Light.ListPopupWindow">
   <item name="android:textSize">14sp</item>
</style>

在样式中,您可以根据需要覆盖文本大小或其他参数。


2
我不熟悉ActionBarSherlock,但您可以在硬盘上的文件夹中找到标准的溢出图标。
path\to\android\android-sdk\platforms\android-api-level\data\res\drawable-resolution 

它们被称为ic_menu_moreoverflow_normal_holo_dark.pngic_menu_moreoverflow_normal_holo_light.png

或者你可以在这里找到它们。

我相信左边的圆圈也是一个drawable,在res\drawable文件夹中查找。


嗨,感谢您的建议。如果可以通过主题实现这一点,我更愿意这样做,而不是将另一个可绘制图像添加到项目中。我仍在努力弄清楚如何做到这一点。 - JonWillis
回复两年后,现在回到Android,我又回到了原生的操作栏。你对图标的看法是正确的,但现在我更加理解样式了。只需将我添加到问题中的内容添加到您的样式中即可。 - JonWillis

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接