我有一个TextView,我想应用一种样式,这种样式我用于所有TextView元素,另外还想使用另一种样式,只在特定的Activity中使用。有没有可能做到这一点?
我有一个TextView,我想应用一种样式,这种样式我用于所有TextView元素,另外还想使用另一种样式,只在特定的Activity中使用。有没有可能做到这一点?
这是一些可能有助于整体问题的小信息 - 无耻地从http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles复制而来。
如果你想要继承自己定义的样式,就不必使用parent属性。 相反,只需将您想要继承的样式名称与新样式名称以句点分隔前缀相连即可。例如,要创建一个新样式,继承上面定义的CodeFont样式,但将颜色设置为红色,可以像这样编写新样式:
<style name="CodeFont.Red">
<item name="android:textColor">#FF0000</item>
</style>
注意,<style>
标签中没有parent属性,但由于name属性以你创建的CodeFont样式名称开头,因此该样式将继承该样式的所有样式属性。然后,该样式将覆盖android:textColor属性以使文本呈现红色。您可以通过@style/CodeFont.Red引用这种新样式。<style name="CodeFont.Red.Big">
<item name="android:textSize">30sp</item>
</style>
在安卓中,样式可以有父样式。
所以只需要将MyActivityTextView
定义为GeneralTextView
的父样式,并更改/添加样式属性。
然后您可以将MyActivityTextView
用于某些视图,将GeneralTextView
用于其他视图。
这在定义样式中有描述。
<style name="current_weekday_white" parent="current_day_white">
<item name="android:textColor">#FFABAB</item>
</style>
从另一个样式继承一个样式,并从第三个样式复制元素。
<style name="Button.Style1" parent="android:style/Widget.Button">
<item name="android:gravity">center</item>
<item name="android:textSize">12sp</item>
<item name="android:background">@drawable/shape_button</item>
<!-- Here are attributes from third style -->
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textColor">#112233</item>
</style>