假设我有一些自定义属性,如下所示:
<style name="Theme1" parent="android:Theme.Holo">
<item name="textViewBackground">#000022</item>
<item name="android:background">#000000</item>
</style>
<style name="Theme2" parent="android:Theme.Holo">
<item name="textViewBackground">#AA2200</item>
<item name="android:background">#000000</item>
</style>
我可以在像TextView这样的标准视图中引用它吗?类似的东西:
<TextView
android:id="@+id/txtNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@CurrentTheme.textViewBackground"
android:text="Number" />
答案 0 :(得分:1)
您需要定义TextView样式,如下所示:
<style name="Theme1" parent="android:Theme.Holo">
<item name="android:textViewStyle">@style/TextViewStyle1</item>
<item name="android:background">#000000</item>
</style>
<style name="Theme2" parent="android:Theme.Holo">
<item name="android:textViewStyle">@style/TextViewStyle2</item>
<item name="android:background">#000000</item>
</style>
<style name="TextViewStyle1" parent="@android:style/Widget.TextView">
<item name="android:background">#000022</item>
</style>
<style name="TextViewStyle2" parent="@android:style/Widget.TextView">
<item name="android:background">#AA2200</item>
</style>
然后,您甚至不需要在xml中的每个android:background
上设置TextView
属性,它将适用于未指定其他背景的所有TextView