1

如果我在这段代码中使用 sherlockActionBar

menu.add(Menu.NONE, R.string.abc, Menu.NONE, R.string.abc)
.setIcon(R.drawable.ic_action_red_plus)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

它在UPPERCASE BOLD的右侧显示带有文本的图标。现在,抛开 android 图标指南,我如何更改该文本的颜色/形状?这是我尝试过的,但没有效果:

<style name="MyTheme" parent="@style/Theme.Sherlock.Light">
    <item name="android:textSize">20dp</item> 
</style>

 <style name="MyTheme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/MyTheme.Styled.ActionBar</item>
    <item name="android:actionBarStyle">@style/MyTheme.Styled.ActionBar</item>
</style>

<style name="MyTheme.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="background">@drawable/pdf2</item>
    <item name="android:background">@drawable/logo</item>
</style>

请注意,我不是在问如何设置标签文本的样式(在网站上有答案),而是在操作栏上显示的操作,而不是在下拉菜单中显示的操作。

谢谢

4

1 回答 1

1

颜色变了:

<style name="MyTheme" parent="Theme.Sherlock.Light">
    <item name="android:actionMenuTextColor">@color/White</item>
    <item name="actionMenuTextColor">@color/White</item>
</style>

基于 ABS 库中的 XML 布局,您可以使用

Activity.findViewById(R.id.abs__textButton) 

这应该返回一个扩展版本的 Android Button,它可以有一个自定义字体。这可能不是一个好主意,因为我认为它不适用于使用本机 ActionBar 的设备。你可以试试看。

此外,您不应将其R.string.something用作 id。您应该在 XML 中创建一个 id 并使用R.id.something或仅在您的类中定义一个 int 来引用它。

编辑:我做了一些测试,如果你Activity.findViewById(menuItemId)在 ICS 设备上做,你会得到一个带有 ImageButton 和 Button 的 ViewGroup。我不能给你他们的 id,但你可以使用 getChildAt 来获取 Button 子元素并将字体应用到它。

于 2012-10-04T16:29:29.693 回答