我正在尝试以编程方式更改colorPrimary
和colorAccent
,但是找不到与它们相关的任何方法,例如setThemeColorPrimary(int color)
。我发现的唯一方法是通过Java reflection对其进行更改。但是,我找不到要反映的colorPrimary
和colorAccent
字段。
因此,如何以编程方式更改colorPrimary
和colorAccent
?
提前致谢。
最佳答案
据我所知,您不可能访问colorAccent和colorPrimary字段,而这不是Android资源编译过程的工作方式。
没有诸如Theme.colorPrimary这样的东西,您需要使用obtainStyledAtributtes()
或类似技术来访问主题属性。
我知道以编程方式执行此操作的唯一方法是使用setTheme()
方法或使用ContextThemeWrapper()
。两种方式都需要在XML中具有多个样式声明。