我有一种强调色,我在整个布局中使用它。我把它定义为我应用于TextView的样式。
我的应用程序允许用户在黑暗主题和浅色主题之间进行选择。我想根据所选主题调整强调色。
我应该如何根据所选主题控制我的强调色?
开发指南提供了一个使用自定义颜色的主题示例,它接近我想要的。我需要能够在运行时更改颜色。我知道我可以进入我的代码和X使用这种风格的地方我可以把组件磨掉并按照这种方式设置颜色。但我认为我可以通过风格/主题的某种组合来实现这一点。
谢谢
答案 0 :(得分:0)
我解决这个问题的方法是创建android.widget.TextView的子类。我创建了一个TextViewAccented和一个TextViewWarning。我在我的XML中使用这些TextViews,我想要重音或警告颜色。我从XML中删除任何颜色引用。
子类包含三个默认构造函数。所有三个构造函数都调用一个名为setColor()的私有方法。然后,setColor()检查所选主题,并根据当前选定的主题使用所需的阴影。
这是一个相当干净的机制,但很难相信我无法在主题中对此进行编码。这似乎正是一个主题应该是什么。