Button не меняет цвет заданый в Selector

Перечитал все ответы на даный вопрос и все равно не нашел причину почему у меня не работает этот селектор. Перепробовал все селекторы всех авторов. Проблема вот в чем Кнопка в селекторе должна менять цвет при нажатии и просто при прикосновении, а в не нажатом режиме должен быть заданый цвет но не тут то было. Мой же селектор только обрезает углы кнопки в все. Кенопка остается Цвета который задан где то в темах для кнопок а не в моем селекторе. Крч вот селектор

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false">
        <shape android:shape="rectangle">
            <corners android:radius="16dp"/>
            <solid android:color="#41cd7e"/>
        </shape>
    </item>
    <item android:state_pressed="false">
        <shape android:shape="rectangle">
            <corners android:radius="16dp"/>
            <solid android:color="#FF000000"/>
        </shape>
    </item>
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <corners android:radius="16dp"/>
            <solid android:color="#aaa"/>
        </shape>
    </item>
</selector>

вот эта кнопка

 <Button
        android:text="@string/sign_in"
        android:textColor="@color/text"
        android:id="@+id/btn_sign_in"
        android:background="@drawable/button_selector"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="30dp"
        app:layout_constraintTop_toBottomOf="@+id/check_layout">
    </Button>

Скину еще темы может в них проблема

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.ProductApp" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/card</item>
        <item name="colorPrimaryVariant">@color/background</item>
        <item name="colorOnPrimary">@color/background</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/card</item>
        <item name="colorSecondaryVariant">@color/background</item>
        <item name="colorOnSecondary">@color/background</item>

    </style>
    <style name="Splash" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <item name="android:windowBackground">@drawable/back</item>
    </style>
</resources>

Я думаю проблема в том что где то задается цвет кнопки по умолчанию но где это вопрос. В кодах активити я его не задаю точно!!!

Менял в темах colorPrimary меняется цвет кнопки. Но не понятно где он задается по дефолту? Могут ли быть это ViewBinging???


Ответы (1 шт):

Автор решения: Wlad

Ваша проблема заключена в родительской теме Theme.MaterialComponents.DayNight.NoActionBar
она не дает просто так менять background'ы разметки.

чтобы сработал ваш селектор, вам надо добавить в разметку вашей кнопки

app:backgroundTint="#FFFFFF"
app:backgroundTintMode="multiply"

Должно получиться +- так

<Button
        android:text="@string/sign_in"
        android:textColor="@color/text"
        android:id="@+id/btn_sign_in"
        android:background="@drawable/button_selector"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="30dp"
        app:layout_constraintTop_toBottomOf="@+id/check_layout"
        app:backgroundTint="#FFFFFF"
        app:backgroundTintMode="multiply"/>
    </Button>
→ Ссылка