যেহেতু অন্য কোনও উত্তর কাস্টম শৈলীর ওভাররাইড সরবরাহ করে নি (যেটি করার জন্য আমি নিরাপদ আপডেটের একটি হিসাবে বিবেচনা করি) আমি আমার সমাধান এখানে পোস্ট করি।
আমি একটি সমাধান পোস্ট করেছি যা ইতিমধ্যে নতুনটিকে সম্বোধন করে AndroidX ( support design 28) থিম ।
তবে শর্ত থাকে যে আপনার আবেদন একটি কাস্টম তাদের ডেকে ব্যবহার MyAppThemeআপনার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.xmlআপনার অ্যাপ্লিকেশন দ্বারা ব্যবহৃত থিমটি ওভাররাইড করে ফাইল :
<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>
এবং আপনার values/colors.xmlফাইল আপনার রঙ সরবরাহ
<?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>
আপডেট 2020
উপরের সমাধানটি স্ন্যাকার ব্যাকস এর ব্যাকগ্রাউন্ড সেট করার বৃত্তাকার কোণটি সরিয়ে ফেললে আপনি যদি উপাদানটির নকশা সংরক্ষণ করতে চান তবে এইভাবে উত্তরাধিকারী স্নাকবার ডিজাইনটি ব্যবহার করে।
- আপনি যদি 2121+ এপিটি লক্ষ্য করে থাকেন
android:backgroundসঙ্গে প্রতিস্থাপনandroid:backgroundTint
<style name="MySnackBarStyle" parent="Widget.MaterialComponents.Snackbar">
<item name="android:backgroundTint">@color/mySnackbarBackgroundColor</item>
</style>
আপনি এপিআই <21 লক্ষ্য করে তারপর যদি আপনি এপিআই <21 জন্য উত্তরাধিকার snackbar ব্যবহার করার সিদ্ধান্ত নেন তাহলে আপনার abouve স্থির করতে পারে MySnackbarStyleমধ্যে মাঝামাঝি / মান -21 / ফোল্ডার এবং পূর্ববর্তী ছেড়ে - উত্তরাধিকার - আপনার মধ্যে শৈলী মাঝামাঝি / মান ফোল্ডার।
আপনি যদি এপিআই <21 কে টার্গেট করছেন এবং আপনি যদি এই নিম্ন API স্তরেও স্নাকবারের উপাদানের স্টাইলটি রাখতে চান তবে আপনি নিজের স্ন্যাকবার শৈলীটি আপনার রেজোল / মান / এইভাবে পরিবর্তন করতে পারেন :
<style name="MySnackBarStyle" parent="Widget.MaterialComponents.Snackbar">
<item name="android:background">@drawable/my_snackbar_background</item>
</style>
এবং আপনার সরকারী রেপোmy_snackbar_background থেকে এইভাবে ধার করুন :
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="4dp"/>
<solid android:color="@color/mySnackbarBackgroundColor"/>
</shape>
এখানে একটি খেলার মাঠ রেপো ।
