【问题标题】:How to customize ActionBar in Android (ActionbarSherlock)?如何在Android(ActionbarSherlock)中自定义ActionBar?
【发布时间】:2013-04-17 00:59:26
【问题描述】:

我在我的应用程序中使用了 ActionBarSherlock 来为预蜂窝设备提供 ActionBar。我想在中使用 Light.DarkActionBar 主题,如何为部分 ActionBar 自定义以下内容(见图)

  1. ActionBar 的背景颜色
  2. ActionBar 标签栏的背景图片
  3. 代表所选标签的底线
  4. 标签之间的分隔线...

我尝试使用以下设置,虽然我取得了一些成功,但结果看起来并不像预期的那样,

<item name="android:background">@drawable/bg_title_bar</item>
<item name="background">@drawable/bg_title_bar</item>
<item name="actionModeSplitBackground">@drawable/bg_tab_bar</item>
<item name="android:actionModeSplitBackground">@drawable/bg_tab_bar</item>

我应该使用哪些其他设置?谢谢!!

【问题讨论】:

  • 我建议您从 Jeff Gilfelt's Android Action Bar Style Generator 开始,使用您的开发机器的 Chrome 浏览器。它使您可以直观地自定义列表中的至少前三个项目,允许您下载资源的 ZIP 文件以融入您的项目。
  • 谢谢...但我实际上是在询问这些更改的参数,即标题栏背景的 android:background.. 设计团队会给我所有这些图像...如果我给他们一个所需资源列表...在哪里可以获取用于修改操作栏外观的属性列表以及对它们的简短描述...
  • “我可以在哪里获得用于修改 Action Bar 外观和感觉的属性列表以及对它们的简短描述”——Vulcan 与 Android 工程师(或 Jake Wharton)的思维融合。除此之外,这都是逆向工程。这就是为什么我建议你使用 Jeff 的工具,这样你就可以看看 he 如何修改这些值,就像他为你做逆向工程一样。
  • @CommonsWare 我从您提供的链接下载了一个示例 zip 文件。解压缩它并在 values/styles_example.xml 中...我得到了我想要的...谢谢,请将其作为答案发布,以便我可以接受它..谢谢..
  • 实际上,我建议发布一个答案,其中包含您最终使用的样式属性等方面的内容。我将其发布为评论的部分原因是我可以引导您找到答案的方向,但我并没有真正能够深入了解所有内容以找到您正在寻找的确切值。您最终将能够接受自己的答案(我忘记了可能会有多长时间的延迟)。

标签: android android-actionbar actionbarsherlock android-ui


【解决方案1】:

我就是这样做的,以防将来有人有类似的要求。

我从Style Genarator 下载了一个示例 zip 文件...解压缩并仔细查看内容表明我需要以下属性,

  1. ActionBar 的背景颜色

    <item name="background">@drawable/title_bg</item>
    <item name="android:background">@drawable/title_bg</item>
    

2。 用于 ActionBar 标签栏的背景图像

    <item name="backgroundStacked">@drawable/tab_bg</item>
    <item name="android:backgroundStacked">@drawable/tab_bg</item>  

3。 for 代表所选标签的底线

               i. I created a style as follows
                    <style name="ActionBar.TabStyle" parent="@style/Widget.Sherlock.Light.ActionBar.TabView">
                    <item name="background">@drawable/ab_tab_indicator</item>
                    <item name="android:background">@drawable/ab_tab_indicator</item>
                </style>
               ii. I used that style in the theme as follows
                 <item name="actionBarTabStyle">@style/ActionBar.TabStyle</item>
                 <item name="android:actionBarTabStyle">@style/ActionBar.TabStyle</item>

4 用于选项卡之间的分隔线...

在主题中我添加了两行..

  <item name="actionBarTabBarStyle">@style/My.ActionBar.TabBar</item>
  <item name="android:actionBarTabBarStyle">@style/My.ActionBar.TabBar</item>

<style name="My.ActionBar.TabBar" parent="@android:style/Widget.Holo.ActionBar.TabBar">
    <item name="divider">@drawable/tab_divider</item>
    <item name="android:showDividers">middle</item>
    <item name="android:divider">@drawable/tab_divider</item>
    <item name="android:dividerHeight">24dp</item>
    <item name="android:dividerPadding">8dp</item>
    <!-- <item name="android:background">@drawable/tab_unselected</item> -->
</style>

【讨论】:

    【解决方案2】:

    这是link!使用此样式生成器,根据需要进行自定义。下载文件,将所有drawables复制到各自的目录,将style.xml复制到values目录下。 并在相应活动的清单中使用给定的主题名称作为您的主题..

    希望这对你有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多