使用视图样式的自定义属性

时间:2014-10-07 21:44:02

标签: android android-layout

假设我有一些自定义属性,如下所示:

<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" />

1 个答案:

答案 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