我正在尝试使我的ICS(API级别15)应用程序与Gingerbread(API级别10)兼容,并且我获得InflateException Error inflating class <Unknown>
任何具有?android:attr/
属性的布局XML。如果我注释掉这些属性,我可以编译并运行应用程序,但当然,它看起来很糟糕。
我宁愿不复制我正在使用的android.R.attr
中的所有项目,但目前我已经迷失了另一种方式。
我正在使用ActionBarSherlock来使ActionBar正常工作,我似乎没有使用任何其他需要支持库的东西(虽然我在尝试解决这个问题的过程中将其包含在内),它只是这些基于主题的资源我坚持不懈。
我正在使用的一些主题资源是:
?android:attr/textColorSecondaryInverse
?android:attr/textAppearanceLarge
?android:attr/dividerVertical
?android:attr/selectableItemBackground
?android:attr/textAppearanceMedium
?android:attr/dividerVertical
?android:attr/dividerHorizontal
答案 0 :(得分:12)
使用API 11中的样式特别是android:attr / textAppearanceMedium?android:attr / dividerVertical?android:attr / dividerHorizontal
最简单的方法是在您需要的地方使用以下代码
<!-- For Horizontal Line-->
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_marginLeft="4dip"
android:layout_marginRight="4dip"
android:background="#aaa"
android:layout_alignParentTop="true"/>
<!-- For Vertical Line-->
<View
android:id="@+id/VerticalLine"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_marginBottom="4dip"
android:layout_marginTop="4dip"
android:background="#aaa"/>
答案 1 :(得分:11)
与documentation一样,某些样式的API更高。例如:
dividerVertical
dividerHorizontal
?
标记用于引用当前主题中的样式。
要解决您的问题,您可以:
values-v11
文件夹和values
中旧版本的支持样式。这取决于你的目标。当本机应用程序对您很重要时,第一个建议是有意义的 如果你想在任何地方都拥有Holo风格,那么就没有办法复制它并将其用作所有平台的一种风格 看看这个项目:https://github.com/Prototik/HoloEverywhere
答案 2 :(得分:3)
请检查android支持v7 - appcompat项目。它有许多主题和属性用于向后兼容(attr / dividerHorizontal)
http://developer.android.com/tools/support-library/features.html#v7-appcompat
要使用v7支持,您必须将其作为Android lib项目导入,并从您的项目中引用它。它还包含v4支持,因此您可能希望删除libs文件夹中的v4支持:)祝你好运!!