В моем приложении я меняю цвет строки состояния программно. Но когда я меняю тему, я хочу сделать то же самое, получая цвет строки состояния из attrs.xml и применяя его к строке состояния программным способом.
style.xml
<style name="AppThemeDark" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">#002b27</item>
</style>
<style name="AppThemeLight" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">#e0e7e6</item>
</style>
attrs.xml
<declare-styleable name="theme">
<attr name="colorPrimary" format="color"/>
</declare-styleable>
MainActivity.Java
int[] attrs = {R.attr.statusBarColorInboxTop};
TypedArray ta = getApplicationContext().obtainStyledAttributes(attrs);
int color = ta.getResourceId(0, android.R.color.holo_blue_dark);
ta.recycle();
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
getWindow().setStatusBarColor(getResources().getColor(color));