关于按钮的一些问题..(高度,点击效果等)

Some questions about buttons..(elevation, click effect, etc.)

<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"/>

xml代码和图片是UI我做的

我想继续这个设计。

我已经引用了这个link。

Q1。这种情况下怎么给按钮点击效果?

我想给 button 一个 elevation 效果。

通常在使用海拔 属性 时不适用。

所以我使用了android:stateListAnimator="@null"属性。 工作正常。

但是我点击的时候没有出现按钮点击效果

原因是 stateListAnimator 属性。当我删除这个时,出现按钮点击效果

但是,如果我删除这个,the depth of the elevation 属性 无法调整。

所以也许我需要这个 属性 来提升。


Q2。选择按钮颜色时,backgroundbackgroundTint有什么区别?

当我第一次设置按钮的颜色时,我使用了background="@color/white" 属性。

但是颜色没有变

在 link 中,显然我们使用 background 属性 作为按钮的颜色。

我使用按钮背景属性的情况是当我使用background="?android:selectableItemBackground"background="#00ff0000"时。

这两个属性使其完全透明,除了按钮上的文本。


Q3。为什么 background="@color/white" 不适用?

关于Q2,我很好奇为什么用background 属性.

指定颜色时颜色没有改变

首先,一次问多个问题并不是最好的方法!对于您的问题,这里有一个提示:

  • 使用 MaterialButton 而不是普通按钮:

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

  • 访问 回答第二个问题