为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

幕布斯6054654 2019-10-06 13:04:53
假设我希望TextView我的应用程序中的所有实例都具有textColor="#ffffff"。有没有一种方法可以将其设置在一个地方,而不是每个地方都设置呢TextView?
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

实际上,您可以为TextViews(以及大多数其他内置窗口小部件)设置默认样式,而无需执行自定义Java类或单独设置样式。


如果您查看themes.xmlAndroid源代码,将会看到许多小部件的默认样式的属性。关键是您在自定义主题中覆盖的textViewStyle(或editTextStyle等)属性。您可以通过以下方式覆盖它们:


创建一个styles.xml:


<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name="MyTheme" parent="android:Theme">

    <item name="android:textViewStyle">@style/MyTextViewStyle</item>

</style>


<style name="MyTextViewStyle" parent="android:Widget.TextView">

    <item name="android:textColor">#F00</item>

    <item name="android:textStyle">bold</item>

</style>

</resources>

然后只需将该主题应用于您的应用程序即可AndroidManifest.xml:


<application […] android:theme="@style/MyTheme">…

并且您的所有文本视图将默认使用中定义的样式MyTextViewStyle(在这种情况下,为粗体和红色)!


此功能已在API级别4以上的设备上进行了测试,并且效果很好。


查看完整回答
反对 回复 2019-10-06
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

对于中的默认文本颜色TextView,请android:textColorTertiary在您的主题中将其设置为所需的颜色:


<item name="android:textColorTertiary">@color/your_text_color</item>

可以使用框架属性控制其他许多Android控件的颜色,如果使用支持库,则可以使用支持库属性。


对于您可以设置属性的列表,请查看Android源代码的styles.xml和themes.xml,或者这个非常有用的要点丹卢,尝试改变每个值,看看它们改变屏幕上的内容。


查看完整回答
反对 回复 2019-10-06
  • 3 回答
  • 0 关注
  • 512 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信