Il colore del pulsante non cambia in android studio

0

Domanda

Ho un pulsante che ha due stati in cui si dispone di un colore diverso, ma il colore non cambia perché il colore del pulsante è impostato automaticamente dal tema. Come posso evitare che il colore che il tema è impostato?

Codice del pulsante:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="@color/purple_200">

    <LinearLayout
        android:id="@+id/startLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:padding="10dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/add_note"
            android:layout_width="0dp"
            android:layout_height="65dp"
            android:layout_weight="1"
            android:textSize="23sp"
            android:background="@drawable/button_states"
            android:text="@string/add_button" />
    </LinearLayout>
</RelativeLayout>

Dichiara il codice:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false">
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="@color/white"/>
            <stroke android:color="@color/purple_200" android:width="1dp"/>
        </shape>
    </item>
    <item android:state_pressed="true">
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="@color/purple_200"/>
            <stroke android:color="@color/purple_500" android:width="1dp"/>
        </shape>
    </item>
</selector>

Codice tema:

<resources>
    <style name="Theme.NotifyMe" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
    </style>
</resources>
android android-studio button java
2021-11-24 06:32:06
2

Migliore risposta

0

O si utilizza il Pulsante da androidx biblioteca androidx.appcompat.widget.AppCompatButton o impostare le proprietà del pulsante backgroundTintMode in xml per la drawables.

Idealmente, si desidera utilizzare la proprietà background, quindi è meglio utilizzare questo

 <androidx.appcompat.widget.AppCompatButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="64dp"
        android:text="Button"
        android:background="@drawable/button_states"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="106dp" />
2021-11-24 09:18:05
-1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="@color/purple_200">

<LinearLayout
    android:id="@+id/startLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:padding="10dp"
    android:orientation="horizontal">

    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/add_note"
        android:layout_width="0dp"
        android:layout_height="65dp"
        android:layout_weight="1"
        android:textSize="23sp"
        android:background="@drawable/button_states"
        android:text="Add Button" />
</LinearLayout>
</RelativeLayout>
2021-11-24 06:55:32

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................