<Button
    android:id="@+id/delete_set"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:backgroundTint="@color/white"
    android:drawableLeft="@drawable/ic_remove_routine"
    android:elevation="4dp"
    android:translationZ="3dp"
    android:stateListAnimator="@null"
    android:text="Remove Set"
    android:textSize="12dp"
    android:textColor="@color/orgin_text_color"
    android:clickable="true"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="1dp"
    android:layout_marginRight="1dp"
    app:layout_constraintHorizontal_weight="1"/>
<Button
    android:id="@+id/add_set"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:backgroundTint="@color/white"
    android:drawableLeft="@drawable/ic_add_routine"
    android:text="ADD SET"
    android:textSize="12dp"
    android:elevation="4dp"
    android:translationZ="3dp"
    android:stateListAnimator="@null"
    android:textColor="@color/orgin_text_color"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="1dp"
    android:layout_marginRight="1dp"
    app:layout_constraintHorizontal_weight="1"/>

enter image description here

Le code xml et les images sont l'interface utilisateur que j'ai créée.

Je veux aller de l'avant avec cette conception.

J'ai référencé ce lien. L'élévation Android ne montre pas d'ombre sur le bouton

Q1. Comment pouvez-vous donner l'effet de clic sur le bouton dans cette situation?

Je veux donner un effet button an elevation.

Normalement, cela ne s'appliquait pas lors de l'utilisation de la propriété d'élévation.

J'ai donc utilisé l'attribut android:stateListAnimator="@null". Fonctionne très bien.

Cependant, lorsque je clique, l'effet de clic sur le bouton n'apparaît pas.

La raison était la propriété stateListAnimator. Lorsque je supprime cela, l'effet de clic sur le bouton apparaît.

Cependant, si je supprime ceci, la propriété the depth of the elevation ne peut pas être ajustée.

Alors peut-être que j'ai besoin de cette propriété pour l'élévation.


Q2. Lorsque vous choisissez une couleur de bouton, quelle est la différence entre background et backgroundTint?

Lorsque j'ai défini la couleur du bouton pour la première fois, j'ai utilisé la propriété background="@color/white".

Mais la couleur n'a pas changé.

Dans ce lien, nous utilisons évidemment la propriété background pour la couleur du bouton.

Le cas où j'utilise la propriété background d'un bouton est lorsque j'utilise background="?android:selectableItemBackground" et background="#00ff0000".

Ces deux propriétés le rendent complètement transparent à l'exception du texte sur le bouton.


Q3. Pourquoi background="@color/white "ne s'applique-t-il pas?

En relation avec Q2, je suis curieux de savoir pourquoi la couleur ne change pas lorsqu'une couleur est spécifiée avec la propriété background.

0
ybybyb 22 févr. 2021 à 22:27

1 réponse

Meilleure réponse

Tout d'abord, ce n'est pas la meilleure façon de poser plusieurs questions à la fois! et pour vos questions, voici un indice:

  • Utilisez un MaterialButton au lieu d'un bouton normal:

    <com.google.android.material.button.MaterialButton android:layout_width="wrap_content" android:layout_height="wrap_content"/>

  • Consultez ce lien pour votre deuxième question.

1
Mohammad Noorzade 1 mars 2021 à 13:13