Butonul de culoare nu se schimba in android studio

0

Problema

Am un buton care are două membre în care are o culoare diferită, dar culoarea nu se schimba, deoarece culoarea butonului este setat automat de tema. Cum pot evita culoarea care tema a stabilit?

Butonul de cod:

<?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>

Membre cod:

<?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>

Cod temă:

<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

Cel mai bun răspuns

0

Fie ca folositi Butonul de androidx biblioteca androidx.appcompat.widget.AppCompatButton sau setați proprietatea de buton backgroundTintMode în xml la drawables.

În mod ideal, doriți să utilizați fundal de proprietate astfel încât cel mai bine să utilizați acest

 <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

În alte limbi

Această pagină este în alte limbi

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