【发布时间】:2021-05-12 13:34:14
【问题描述】:
我需要从主题中提取默认值,但不是从当前主题中提取。
我知道我可以像这样从当前主题中获取属性:
TypedValue typedValue = new TypedValue();
Theme currentTheme = context.getTheme();
currentTheme.resolveAttribute(android.R.attr.windowBackground, typedValue, true);
// result is in: typedValue.data
但我需要类似的东西:
Theme darkTheme = getTheme(R.style.AppTheme.Dark);
... 我只需要提取单个值,我不想更改当前主题。
【问题讨论】:
-
可能类似于
Theme darkTheme = new ContextThemeWrapper(getBaseContext(), R.style.AppTheme.Dark).getTheme();。这似乎有点迂回,但我不确定是否有任何方法可以直接实例化Theme。我得去挖掘一下。 -
看起来很有希望,现在就试试吧
-
对我来说效果很好,如果你把它放在答案中,我会接受它
-
我要多花点时间。如果我发现任何更“正确”的内容,我会告诉你的。