1

我一直在努力使用 pre-lollipop API 获取样式属性。

用棒棒糖,我用

final TypedValue statusBarColor = new TypedValue();
getTheme().resolveAttribute(android.R.attr.colorPrimaryDark, statusBarColor, true);
STATUS_BAR_COLOR = ContextCompat.getColor(this, statusBarColor.resourceId);

这完美无缺,我在 API 版本 21 下没有找到类似的方法。(minAPI = 16)

我尝试使用getTheme().obtainStyledAttributes(). 但是,我没有AttributeSet提供该方法,因为我在活动中使用它。我做的事情是完全错误的,还是解决了低于 21 的 API 版本不支持的样式属性?

4

1 回答 1

2

试试这个代码

  TypedValue typedValue = new TypedValue();
  getTheme().resolveAttribute(R.attr.colorPrimaryDark, typedValue, true);
  STATUS_BAR_COLOR = ContextCompat.getColor(this, typedValue.resourceId);

不需要android.R.attr.colorPrimaryDark,而是你应该使用R.attr.colorPrimaryDark 就是这样:)

于 2016-02-15T19:22:13.813 回答