getTheme().resolAttribute() альтернатива перед леденцом на палочке
Я изо всех сил пытался получить стилизованные атрибуты с API pre-lollipop.
С леденцом я пользуюсь
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
чтобы обеспечить этот метод, так как я использую это внутри деятельности. Я делаю что-то не так или разрешает стилизованные атрибуты, которые не поддерживаются в версиях API ниже 21?
1 ответ
Решение
Попробуйте этот код
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 Вот и все:)