我正在尝试以编程方式更改colorPrimarycolorAccent,但是找不到与它们相关的任何方法,例如setThemeColorPrimary(int color)。我发现的唯一方法是通过Java reflection对其进行更改。但是,我找不到要反映的colorPrimarycolorAccent字段。

因此,如何以编程方式更改colorPrimarycolorAccent

提前致谢。

最佳答案

据我所知,您不可能访问colorAccent和colorPrimary字段,而这不是Android资源编译过程的工作方式。

没有诸如Theme.colorPrimary这样的东西,您需要使用obtainStyledAtributtes()或类似技术来访问主题属性。

我知道以编程方式执行此操作的唯一方法是使用setTheme()方法或使用ContextThemeWrapper()。两种方式都需要在XML中具有多个样式声明。

10-06 09:31