Android - 缺少父母主题?

时间:2012-05-22 19:43:18

标签: android xml styles

我正在尝试设置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,然后运行“Android”&gt; Eclipse中的“修复项目属性”。我注意到在那个列出样式的答案中链接的repo是在分支主机上,所以我不明白为什么主题不会被解开。

仅仅是为了测试,我将这一大块代码放在我的android-14定位应用中,减去背景可绘制,并且它会抛出相同的错误。

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:2)

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

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

看起来你的名字可能略有错误。