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