概述的MaterialButton不显示任何边框

时间:2019-03-27 15:37:21

标签: android button material-design

我正在尝试使用带边框的按钮构建布局,如下所示(预期行为)。从材料设计文档中,我读到了“概述的材料按钮”,这对我来说似乎是完美的。我在布局中定义了按钮,提供了笔触宽度和笔触颜色,但是没有显示任何边框,我在做什么错了?

<com.google.android.material.button.MaterialButton
            android:id="@+id/material_text_button"
            style="@style/Widget.MaterialComponents.Button.OutlinedButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginEnd="8dp"
            android:text="Change name"
            android:background="@android:color/transparent"
            android:textSize="12sp"
            app:layout_constraintBottom_toBottomOf="@+id/listTextView2"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/listTextView2"
            app:layout_constraintTop_toTopOf="@+id/listTextView2"
            app:strokeColor="@color/green"
            app:strokeWidth="10dp" />

预期行为:

enter image description here

当前行为:

enter image description here

5 个答案:

答案 0 :(得分:4)

在您的build.gradle应用中使用它

    implementation 'com.google.android.material:material:1.2.0-alpha02'

我认为这是Google材料中的错误。

更新:我刚刚进行了测试。

下的Gradle应用程序中使用依赖项
implementation 'com.google.android.material:material:1.2.0-alpha05

并在材料按钮XML中添加样式

style="@style/Widget.MaterialComponents.Button.OutlinedButton"

它可能不会显示在xml预览中,但会在您运行应用程序时显示

答案 1 :(得分:1)

尝试从XML中删除透明背景和样式。并确保将样式更改为MaterialComponents。

  <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> 

 <com.google.android.material.button.MaterialButton
        android:id="@+id/btn_login"
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:layout_marginStart="20dp"
        android:layout_marginTop="20dp"
        android:textSize="16sp"
        android:layout_marginEnd="20dp"
        android:text="works"
        android:textAllCaps="false"
        android:textColor="@color/white"
        app:strokeColor="@color/white"
        app:strokeWidth="2dp" />

答案 2 :(得分:0)

只需将此属性添加到您的MaterialButton

android:theme="@style/Theme.MaterialComponents"

避免将其添加到您的主题。

示例:

<com.google.android.material.button.MaterialButton
            android:id="@+id/material_text_button"
            style="@style/Widget.MaterialComponents.Button.OutlinedButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:theme="@style/Theme.MaterialComponents"
            android:layout_marginStart="8dp"
            android:layout_marginEnd="8dp"
            android:text="Change name"
            android:background="@android:color/transparent"
            android:textSize="12sp"
            app:layout_constraintBottom_toBottomOf="@+id/listTextView2"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/listTextView2"
            app:layout_constraintTop_toTopOf="@+id/listTextView2"
            app:strokeColor="@color/green"
            app:strokeWidth="10dp" />

答案 3 :(得分:0)

依赖性

implementation 'com.google.android.material:material:1.2.1'

添加android:backgroundTint =“ @ color / colorPrimary”

<com.google.android.material.button.MaterialButton
     android:id="@+id/material_text_button"
     style="@style/Widget.MaterialComponents.Button.OutlinedButton"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Pick Date"
     android:background="@drawable/register_edittext_background"
     android:textSize="12sp"

     app:backgroundTint="@color/colorPrimary"
/>

答案 4 :(得分:0)

这对我有用

 <style name="oval_button_outline" 
     parent="Widget.MaterialComponents.Button.OutlinedButton">
    <item name="cornerFamily">rounded</item>
    <item name="cornerRadius">16dp</item>
    <item name="android:textColor">@color/dark_color</item>
</style>



 <com.google.android.material.button.MaterialButton
        android:id="@+id/start_login"
        style="@style/oval_button_outline"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-medium"
        android:textStyle="normal"
        android:textSize="14sp"
        android:letterSpacing="0.09"
        android:lineSpacingExtra="2sp"
        android:gravity="center_horizontal"
        android:text="@string/login"
        android:textColor="@color/dark_color"
        android:theme="@style/Theme.MaterialComponents"
        app:strokeColor="@color/dark_color"
        app:strokeWidth="2dp" />