Правильный стиль в Android - PullRequest
0 голосов
/ 22 мая 2019

Я всегда пытался изменить / переписать стили по умолчанию. Я использую новую библиотеку материалов для своих виджетов. Например, я перезаписываю свой стиль 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) и изменении программно, но мне это кажется неправильным, а не обычным способом. ... я не прав?

...