Я всегда пытался изменить / переписать стили по умолчанию.
Я использую новую библиотеку материалов для своих виджетов.
Например, я перезаписываю свой стиль MaterialButton:
<style name="AppTheme" parent="Theme.MaterialComponents.NoActionBar">
...
<item name="materialButtonStyle">@style/CustomButton</item>
</style>
...
...
<style name="CustomButton" parent="Widget.MaterialComponents.Button">
<item name="android:textColor">@color/colorTextPrimary</item>
<item name="android:backgroundTint">@color/button_background</item>
</style>
Где цвет фона:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:color="@color/colorAccent"/>
<item android:state_enabled="false" android:color="@color/colorDisabled"/>
</selector>
Проблема в том, что таким образом я не могу установить альфа для отключенного цвета, так как он влияет только на цвет фона, а не на textColor ...
Другая проблема с этим подходом заключается в том, что кнопка MaterialDesign.Text (Widget.MaterialComponents.Button.TextButton) также перезаписывается и прерывается ...
У меня очень похожие проблемы с другими виджетами, такими как TextView, InputFields ...
Как правильно переписывать разные стили, ничего не нарушая? Я всегда думал о расширении этих классов (например, MaterialButton) и изменении программно, но мне это кажется неправильным, а не обычным способом. ... я не прав?