尽管代码库相同,但显示不同的按钮样式是我的问题。在Android 5.1及更高版本上可以正常工作。但是在Android 5.0上, MaterialButton 样式和背景颜色不起作用。
我正在使用com.google.android.material:material:1.1.0-alpha01
此处是继续按钮在Nexus 5 Android 5.1.1上有效
此处为继续按钮样式在Nexus 5 Android 5.0上不起作用
这是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>
我的 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>
答案 0 :(得分:0)
尝试使用Android X代替appcompat
使用材料设计尝试在未来使用androidX。这是材料设计的标准做法。