按钮边框不显示

Button Border Not Showing

我尝试在 android 中为按钮添加边框,但遗憾的是我看不到按钮边框。

可绘制文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="12dp" />
            <stroke android:width="3px" android:color="#7E8082" />
        </shape>
    </item>
</selector>

XML

<Button
        android:id="@+id/btn_signup"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_marginTop="122dp"
        android:background="@drawable/bg_signup"
        android:fontFamily="@font/poppins_semibold"
        android:text="Create an Account"
        android:textAllCaps="false"
        android:textColor="@color/black"
        app:layout_constraintTop_toBottomOf="@+id/btn_login" />

不使用选择器直接使用单个选项shape

bg_signup

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#cdcdcd"/>
    <corners
        android:radius="4dp"
    />
    <stroke
        android:width="1dp"
        android:color="#000"
    />
</shape>

使用 Style 属性代替 android:background="@drawable/bg_signup"

制作自定义样式然后调用它android:style="@style/bg_signup"

您不需要使用自定义可绘制对象,只需使用 MaterialButton:

       <com.google.android.material.button.MaterialButton
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           style="@style/Widget.MaterialComponents.Button.OutlinedButton"
           app:strokeColor="#7E8082"
           app:strokeWidth="1dp"
           app:cornerRadius="12dp"/>