按钮上不显示可绘制图标

Drawable icons aren't displayed on Button

每次我尝试向按钮添加一些可绘制图标时,即使是按钮或 Material 按钮,它们也不会显示

   <Button
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_gravity="center"
                    android:text="Person"
                  android:drawableStart="@drawable/ic_person_pin_circle_black_24dp"
                  />
              <Button
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_gravity="center"
                  android:text="Package"
                  android:layout_marginStart="10dp"
                  android:drawableStart="@drawable/ic_business_center_black_24dp"
                  />



在左边我有"pin person"图标和"briefcase "图标,但是在布局上没有显示。你知道这可能是什么原因吗?

drawableStart对应drawable,会根据布局方向绘制到view的开始,但是你的方向可能坏 ;你可以这样改变这个方向:

android:重力="center_vertical|center_horizontal|left"

或者您可以通过编程方式添加它们:

myButton.setCompoundDrawablesRelativeWithIntrinsicBounds(
    ContextCompat.getDrawable(this, R.drawable.ic_business_center_black_24dp), null, null, null);

MaterialButton 一起使用 app:icon 属性和 app:iconGravity="start".

类似于:

  <com.google.android.material.button.MaterialButton
        style="@style/Widget.MaterialComponents.Button.Icon"
        app:icon="@drawable/..."
        app:iconGravity="start"
        ../>