3 回答
TA贡献1821条经验 获得超4个赞
除了michael的出色答案之外,另一方面是覆盖主题中的自定义属性。假设您有许多自定义视图,它们都引用自定义属性“ custom_background”。
<declare-styleable name="MyCustomStylables">
<attr name="custom_background" format="color"/>
</declare-styleable>
在主题中定义值是什么
<style name="MyColorfulTheme" parent="AppTheme">
<item name="custom_background">#ff0000</item>
</style>
要么
<style name="MyBoringTheme" parent="AppTheme">
<item name="custom_background">#ffffff</item>
</style>
您可以使用样式来引用属性
<style name="MyDefaultLabelStyle" parent="AppTheme">
<item name="android:background">?background_label</item>
</style>
注意问号,也用于参考android属性,如
?android:attr/colorBackground
正如大多数人所注意到的那样,您可以-并且可能应该-使用@color引用而不是硬编码的颜色。
那为什么不做
<item name="android:background">@color/my_background_color</item>
您无法在运行时更改“ my_background_color”的定义,而可以轻松切换主题。
TA贡献1815条经验 获得超10个赞
如果您的意思是开发人员可以使用的库,那么他们将能够创建自己的主题,并使用主题中的style属性(customImageButtonStyle
在此答案中)指定小部件的样式。这就是在Android上自定义操作栏的方式。而且,如果您要在运行时更改主题,那么使用这种方法是不可能的。
- 3 回答
- 0 关注
- 349 浏览
添加回答
举报