【问题标题】:Android - Missing Parent Theme?Android - 缺少父主题?
【发布时间】:2012-05-29 08:31:38
【问题描述】:

我正在尝试按照这篇博文设置 ActionBar 的样式:

http://android-developers.blogspot.com/2011/04/customizing-action-bar.html

有了这个源代码:

svn checkout http://styled-action-bar.googlecode.com/svn/trunk/ styled-action-bar-read-only

但是,我在/res/values/styles.xml 中遇到了问题。

这个:

<!-- style for the tabs -->
<style name="MyActionBarTabStyle" parent="android:style/Widget.Holo.Light.ActionBarView_TabView">
    <item name="android:background">@drawable/actionbar_tab_bg</item>
    <item name="android:paddingLeft">32dp</item>
    <item name="android:paddingRight">32dp</item>
</style>

出错了:

Error retrieving parent for item: No resource found that matches the given name 'android:style/Widget.Holo.Light.ActionBarView_TabView'.

但是,使用以下答案,并挖掘 Android 的源代码,我可以看到该主题确实存在:

https://stackoverflow.com/a/7149389/420001

我在项目中唯一更改的是将它从android-11 移动到android-14,然后在Eclipse 中运行“Android”>“修复项目属性”。我确实注意到该答案中链接到的 repo 列出了样式,位于分支 master 上,所以我看不出为什么找不到主题。

只是为了测试,我将那段代码放在我的工作 android-14 目标应用程序中,减去背景可绘制对象,它会引发相同的错误。

【问题讨论】:

    标签: android xml styles


    【解决方案1】:

    根据https://stackoverflow.com/a/7837756/1003511 中的链接,有Widget_Holo_Light_ActionBar_TabView,但没有Widget_Holo_Light_ActionBarView_TabView。自编写该教程以来,资源可能已被重命名。它说从 API 级别 13 开始包含没有额外“视图”的版本 - 如果本教程最初是在 11 上编写的,它可能在 13 中被重命名,并且由于您正在运行 14,因此您只能看到重命名的版本。我会尝试删除无关的“视图”并查看代码是否运行。

    【讨论】:

    • 宾果游戏。 Widget.Holo.Light.ActionBar.TabView 做到了。谢谢!
    【解决方案2】:

    在指定要查看 android 样式时,您可能缺少“@”字符:

    您还可以在此处仔细检查 API 文档中是否列出了父样式: http://developer.android.com/reference/android/R.style.html

    看来你的名字可能有点不对。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 2016-09-02
      • 2020-01-08
      • 1970-01-01
      • 2016-08-07
      相关资源
      最近更新 更多