Пользовательская кнопка отображается не полностью - PullRequest
1 голос
/ 21 июня 2020

Я попытался установить вытягиваемый объект в качестве фона для кнопки, но теперь закруглены только углы.

Вот код для вытягиваемого:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="1000dp"/>

    <solid android:color="@color/light_notlight_themebased_accentColor" />

    <padding
        android:bottom="7dp"
        android:top="7dp"
        android:left="7dp"
        android:right="7dp" />

    <stroke
        android:color="@color/ContrastAndText"
        android:width="10dp" />
</shape>

А вот код для кнопки:

<Button
            android:id="@+id/loginButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:background="@drawable/login_loginbutton_default"
            android:text="@string/login_loginButton"
            android:textAllCaps="true"
            android:textColor="@color/NavbarAccent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.498"
            app:layout_constraintStart_toStartOf="parent" />

Обводка и цвет не отображаются (остаются фоновым цветом), скругляются только углы ...

Вот как это выглядит :

В предварительной версии AndroidStudio (Canary 4.1): In the AndroidStudio Preview (Canary 4.1)

Final result on the device:

Окончательный результат на устройстве

В чем моя вина? Заранее спасибо!

1 Ответ

1 голос
/ 21 июня 2020

Если вы используете тему MaterialComponents, нет разницы между <Button /> и <com.google.android.material.button.MaterialButton />. Проверьте этот ответ, чтобы получить дополнительные сведения .

Если вы хотите использовать атрибут android:background в своем Button, вы должны использовать версию 1.2.0-alpha06 или выше.

<MaterialButton
    app:backgroundTint="@null"
    android:background="@drawable/button_gradient"
    ... />

В противном случае вам придется использовать компонент AppCompatButton.

Проверяя форму, вам не нужно устанавливать фон. Просто используйте

   <com.google.android.material.button.MaterialButton
        app:cornerRadius="@dimen/..."
        app:strokeColor="@color/.."
        app:strokeWidth="@dimen/.."
        ..>
  
...