2011-01-31 71 views

回答

13

Android下的风格可以有父风格。

所以只需要MyActivityTextViewGeneralTextView定义为父类型,并更改/添加样式属性。

然后,您可以使用MyActivityTextView获取某些视图,GeneralTextView可以使用其他视图。

它在Defining Styles中描述。

+0

哦,我明白了。太好了,非常感谢。还有一个问题:子样式是否也可以覆盖父属性? – Bruiser 2011-01-31 13:27:48

+1

是的,它可以覆盖父属性。 – 2011-01-31 13:31:00

4

您可以在style.xml与其他扩展一个风格:

<style name="current_weekday_white" parent="current_day_white"> 
    <item name="android:textColor">#FFABAB</item> 
</style> 
+0

嘿在那里我已经尝试过与文本视图,但只有第一种风格的作品,而不是扩展之一。任何线索? – 2014-11-22 04:30:03

19

只是一小块的信息可能会添加到问题的整体价值 - 从耍赖复制:http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles

如果您想从您自己定义的样式继承,则不必使用父属性。相反,只需将要继承的样式的名称添加到新样式的名称中,并用句点分隔。例如,创建一个新的风格,继承了上述定义的CodeFont风格,但使红色,你可以创作新的风格是这样的:

<style name="CodeFont.Red"> 
     <item name="android:textColor">#FF0000</item> 
    </style> 

注意,没有在标签没有父属性,但由于name属性以CodeFont样式名称开头(这是您创建的样式),因此此样式将继承该样式的所有样式属性。该样式将覆盖android:textColor属性以使文本变为红色。你可以引用这个新风格为@ style/CodeFont.Red。

通过链接名称和句点,您可以继续像这样继续多次。例如,您可以将CodeFont.Red扩展为更大,使用:

<style name="CodeFont.Red.Big"> 
    <item name="android:textSize">30sp</item> 
</style> 
相关问题