【发布时间】:2015-03-09 11:06:30
【问题描述】:
我最近一直在尝试在 Android 中使用样式(但显然失败了),试图在自定义视图背景资源中使用 attrs。所以基本上,如果他或她愿意,我想让用户设置一个自定义主题。我有一个托管(支持)ViewPager 的主要片段。 ViewPager 中的每个页面都使用自定义背景填充自定义视图。视图的背景指向一个样式引用,该引用基本上是由所选主题调整的颜色。
属性
<attr name="designBase400" format="reference" />
<attr name="designBase500" format="reference" />
<attr name="designBase700" format="reference" />
少数自定义样式之一
<style name="Theme.ColorScheme.Turquoise" parent="AppTheme">
<item name="designBase400">@color/design_base_400_turquoise</item>
<item name="designBase500">@color/design_base_500_turquoise</item>
<item name="designBase700">@color/design_base_700_turquoise</item>
</style>
<style name="AppTheme" parent="AppBaseTheme">
<item name="windowActionBar">false</item>
<item name="android:spinnerItemStyle">@style/SpinnerItem</item>
<item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item>
</style>
对应颜色
<color name="design_base_500_turquoise">#009688</color>
<color name="design_base_700_turquoise">#00796B</color>
<color name="design_base_400_turquoise">#26A69A</color>
背景资源
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="?attr/designBase400" />
</shape>
使用背景资源的视图(仅重要部分)
<RelativeLayout
android:id="@+id/view_entry_hour_container"
android:layout_width="@dimen/entry_view_circle_dimen"
android:layout_height="@dimen/entry_view_circle_dimen"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="false"
android:background="@drawable/background_circle" >
<TextView
android:id="@+id/view_entry_hour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="false"
android:layout_alignParentStart="false"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@android:color/white"
android:textSize="@dimen/entry_view_hour_size"
android:textStyle="bold" />
</RelativeLayout>
现在我在 ApplicationManifest.xml 中设置了一个示例主题(比如@style/Theme.ColorScheme.Turquoise),应用程序立即崩溃,引发 InflationException。 The stack trace can be found here.我不知道可能出了什么问题。
【问题讨论】:
-
日志说 01-11 16:48:25.511: E/AndroidRuntime(2037): android.view.InflateException: Binary XML file line #9: Error inflating class
9号出了点问题你的 XML 行 -
@oguzhand 好吧,我的视图资源中的第九行是我在问题中包含的视图布局中的第一行。所以基本上#9 指的是“
标签: android xml exception resources stack-trace