在Android中为视图设置全局样式

假设我希望TextView我的应用程序中的所有实例都具有textColor="#ffffff"。有没有一种方法可以将其设置在一个地方,而不是每个地方都设置呢TextView



幕布斯6054654
浏览 514回答 3
3回答

守候你守候我

实际上,您可以为TextViews(以及大多数其他内置窗口小部件)设置默认样式,而无需执行自定义Java类或单独设置样式。如果您查看themes.xmlAndroid源代码,将会看到许多小部件的默认样式的属性。关键是您在自定义主题中覆盖的textViewStyle(或editTextStyle等)属性。您可以通过以下方式覆盖它们:创建一个styles.xml:<?xml version="1.0" encoding="utf-8"?><resources><style name="MyTheme" parent="android:Theme">&nbsp; &nbsp; <item name="android:textViewStyle">@style/MyTextViewStyle</item></style><style name="MyTextViewStyle" parent="android:Widget.TextView">&nbsp; &nbsp; <item name="android:textColor">#F00</item>&nbsp; &nbsp; <item name="android:textStyle">bold</item></style></resources>然后只需将该主题应用于您的应用程序即可AndroidManifest.xml:<application […] android:theme="@style/MyTheme">…并且您的所有文本视图将默认使用中定义的样式MyTextViewStyle(在这种情况下,为粗体和红色)!此功能已在API级别4以上的设备上进行了测试,并且效果很好。

翻过高山走不出你

对于中的默认文本颜色TextView,请android:textColorTertiary在您的主题中将其设置为所需的颜色:<item name="android:textColorTertiary">@color/your_text_color</item>可以使用框架属性控制其他许多Android控件的颜色,如果使用支持库,则可以使用支持库属性。对于您可以设置属性的列表,请查看Android源代码的styles.xml和themes.xml,或者这个非常有用的要点丹卢,尝试改变每个值,看看它们改变屏幕上的内容。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android