3

以前我使用 ADT10.0 。在这个版本中,我没有收到任何关于样式的错误。在我将我的 ADT 更新到 18.0 之后。现在我收到以下错误。

错误:检索项目的父项时出错:未找到与给定名称“@android:style/Widget.RatingBar.Small”匹配的资源。

我该如何解决这个问题?我在某个地方看到了使用http://source.android.com/source/downloading.html解决此导入样式的问题,但这是无法理解的,任何人都可以帮助我吗?

<style name="reviewRatingBar1" parent="@android:style/Widget.RatingBar.Small" >

    <item name="android:progressDrawable">@drawable/review_rating_bar_full</item>
    <item name="android:minHeight">13dip</item>
    <item name="android:maxHeight">13dip</item>
</style>
4

1 回答 1

4

根据android.R.style文档,没有Widget.RatingBar.Small样式(不再),这似乎是 Eclipse 给您该错误的原因。

比较styles.xml来自例如 API 级别 7 和 15 的文件,似乎该样式不再是公开的。如果我尝试在 Eclipse 中引用它,我实际上会收到一条错误消息来确认这一点

错误:资源不是公开的。(在 'style' 中,值为 '@android:style/Widget.RatingBar.Small')。

据我所知,这里有几种选择:

  1. 按照@havexz 的建议进行操作并复制原始样式和引用的资源。不幸的是,这将使您的明星在每台设备上都有固定的外观。换句话说:您无法使用设备制造商提供的基于主题的资源,并且星星看起来与用户习惯的不同。
  2. style="?android:attr/ratingBarStyleSmall"声明时参考RatingBar。但是,您不能从这种基于主题的样式继承,因此对默认“小”样式的任何自定义都必须复制到所有其他小评级栏。
  3. 如果您以 Honeycomb 或以上设备为目标,您可以参考Widget.Holo.RatingBar.SmallWidget.Holo.Light.RatingBar.Small。您可能会根据其中任何一个来设计您的应用程序,因此您会在设计时知道要继承哪种样式。
  4. 看来你RatingBar无论如何都限制了小尺寸的高度,所以你可以只继承常规RatingBar风格吗?
于 2012-06-04T06:27:48.473 回答