Diğer yanıtların hiçbiri özel bir stil geçersiz kılma sağlamadığından (bunu yapmanın en güvenli güncelleme yollarından biri olduğunu düşünüyorum) çözümümü buraya gönderiyorum.
Zaten yeni AndroidX( support design 28) temasına hitap eden bir çözüm gönderiyorum.
Uygulamanızın MyAppThemesizin adınızda çağrılan bir özel kullanması şartıyla AndroidManifest.xml:
<application
android:name=".MyApplicationName"
android:allowBackup="true"
android:icon="@mipmap/icon"
android:roundIcon="@mipmap/icon_round"
android:label="@string/app_name"
android:theme="@style/MyAppTheme">
values/style.xmlUygulamanız tarafından kullanılan temayı geçersiz kılan (henüz yapmadıysanız) dosya oluşturun:
<style name="MyAppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/myColorPrimary</item>
<item name="colorPrimaryDark">@color/myColorPrimaryDark</item>
<item name="colorAccent">@color/myColorAccent</item>
<item name="snackbarStyle">@style/MySnackBarStyle</item>
</style>
<style name="MySnackBarStyle" parent="Widget.MaterialComponents.Snackbar">
<item name="android:background">@color/mySnackbarBackgroundColor</item>
</style>
ve renklerinizi values/colors.xmldosyanıza ekleyin
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="myColorPrimary">#008577</color>
<color name="myColorPrimaryDark">#00574B</color>
<color name="myColorAccent">#D81B60</color>
<color name="mySnackbarBackgroundColor">#D81B60</color>
</resources>
GÜNCELLEME 2020
Yukarıdaki çözüm, atıştırmalıkların yuvarlak köşesini ortadan kaldırdığı için arka planı bu şekilde ayarlamak, eski snackbar tasarımını kullanır, eğer malzeme tasarımını korumak istiyorsanız yapabilirsiniz.
- API 21+ hedefliyorsanız
yerine android:backgroundsahipandroid:backgroundTint
<style name="MySnackBarStyle" parent="Widget.MaterialComponents.Snackbar">
<item name="android:backgroundTint">@color/mySnackbarBackgroundColor</item>
</style>
API <21 için eski snackbar kullanmaya karar verirseniz o zaman API <21 hedeflemesi varsa size abouve ayarlayabilirsiniz MySnackbarStyleiçinde res / değerler-21 / klasör ve önceki bırakın - miras - senin stili res / değerler klasörü.
API <21'i hedefliyorsanız ve atıştırmalık çubuğunun materyal stilini bu düşük API seviyelerinde de kullanmak istiyorsanız, snackbar stilinizi res / değerleriniz / bu şekilde değiştirebilirsiniz:
<style name="MySnackBarStyle" parent="Widget.MaterialComponents.Snackbar">
<item name="android:background">@drawable/my_snackbar_background</item>
</style>
ve ödünç my_snackbar_backgroundgelen resmi repo , bu şekilde:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="4dp"/>
<solid android:color="@color/mySnackbarBackgroundColor"/>
</shape>
İşte bir oyun alanı deposu .
