【问题标题】:Changing values of an app theme at runtime在运行时更改应用主题的值
【发布时间】:2015-03-10 18:20:44
【问题描述】:

我的应用需要更改应用主题的某些属性(如 colorPrimaryDark、colorAccent)

<item name="colorPrimaryDark">@color/i_need_runtime</item>
<item name="colorPrimaryDark">@color/me_too</item>

但是这些更改必须在运行时完成,因为这些值是通过 webservice (json) 来的。因为没有任何 api 可以在运行时更改主题的值,所以我认为唯一的方法是通过 Java Reflection 更改在 xml 中定义的资源值,但我不知道该怎么做,因为在 R 中。 java有定义的ID,而不是值本身。

有什么想法吗?

【问题讨论】:

    标签: android runtime android-theme material-design


    【解决方案1】:

    在 Android 中,主题无法在运行时修改。但是,对于 API 21 或更高版本,您可以调用

    getWindow().setStatusBarColor(int color) 
    
    getWindow().setNavigationBarColor(int color) 
    

    在您的活动中以编程方式设置颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多