简体   繁体   English

MaterialButton样式在Android 5.0(api 21)上不起作用

[英]MaterialButton Style not working on Android 5.0 (api 21)

Although they use the same code base, my problem is that they show different button styles. 尽管它们使用相同的代码库,但我的问题是它们显示了不同的按钮样式。 On Android 5.1 and above my code works as expected. 在Android 5.1及更高版本上,我的代码可以正常工作。 But on Android 5.0 MaterialButton style and background color doesn't work. 但是在Android 5.0上, MaterialButton样式和背景颜色不起作用。

I'm using com.google.android.material:material:1.1.0-alpha01 我正在使用com.google.android.material:material:1.1.0-alpha01

Continue button works on Nexus 5 Android 5.1.1 继续按钮适用于Nexus 5 Android 5.1.1 继续按钮适用于Nexus 5 Android 5.1.1

Continue button style does not work on Nexus 5 Android 5.0 继续按钮样式在Nexus 5 Android 5.0上不起作用 在此处输入图片说明

This is dialog.xml 这是dialog.xml

<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    app:cardCornerRadius="4dp">

   <!-- View -->

        <com.google.android.material.button.MaterialButton
            android:id="@+id/btn_allow"
            style="@style/Widget.AppTheme.ConfirmButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginEnd="@dimen/margin_20"
            android:layout_marginBottom="@dimen/margin_16"
            android:text="@string/str_continue" />

</com.google.android.material.card.MaterialCardView>

My style.xml is 我的style.xml

<resources>
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryVariant">@color/colorPrimaryDark</item>
        <item name="colorSecondary">@color/colorAccent</item>
        <item name="colorOnSecondary">@color/onColorSecondary</item>
        <item name="android:colorBackground">@color/colorPrimary</item>

        <item name="textAppearanceButton">@style/TextAppearance.AppTheme.Button</item>

    </style>

    <style name="AppTheme.NoActionBar" parent="AppTheme">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="Widget.AppTheme.ConfirmButton" parent="Widget.MaterialComponents.Button.UnelevatedButton">
        <item name="android:backgroundTint">?colorSecondary</item>
        <item name="android:textColor">?colorOnSecondary</item>>
        <item name="cornerRadius">2dp</item>
        <item name="android:paddingTop">@dimen/margin_12</item>
        <item name="android:paddingBottom">@dimen/margin_12</item>
        <item name="android:letterSpacing">-0.02</item>
    </style>

    <style name="TextAppearance.AppTheme.Button" parent="TextAppearance.MaterialComponents.Button">
        <item name="android:textAllCaps">false</item>
        <item name="android:textSize">17sp</item>
    </style>
</resources>

Try to use Android X instead of appcompat 尝试使用Android X代替appcompat

with using material design try to use android X for the future. 使用材料设计尝试在未来使用androidX。 It is standard practice for the Material design. 这是材料设计的标准做法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM