मैं इस कोड के साथ मटेरियलबटन में रंग बदलने की कोशिश करता हूं:

var materialButton = findViewByid(R.id....) as MaterialButton
materialButton.setBackgroundColor( ContextCompat.getColor(this@MyActivity, R.color.myCustomColor));

एक सामान्य बटन के साथ, यह काम करता है। क्या किसी के भी पास कोई सुझाव है?

13
Gustavo Mora 28 सितंबर 2018, 18:47

7 जवाब

सबसे बढ़िया उत्तर

मुझे इसका उत्तर मिला जो इस प्रकार है:

मैंने निम्नलिखित पंक्ति को बदल दिया

materialButton.setBackgroundColor( ContextCompat.getColor(this@MyActivity, R.color.myCustomColor));

प्रति

materialButton.setBackgroundTintList(ContextCompat.getColorStateList(this@MyActivity, R.color.myCustomColor));

मैंने इस तरह से इसका परीक्षण किया और इसने पूरी तरह से काम किया।

37
Vault23 31 जिंदा 2020, 17:50

सामग्री बटन के भीतर एक्सएमएल फ़ाइल में बस इस विशेषता को कॉल करें।

 android:backgroundTint=""
16
Tarun Sharma 22 अक्टूबर 2019, 14:01

चलो यह करके देखें:

mButton.getBackground().setColorFilter(getResources().getColor(R.color.indian_red), PorterDuff.Mode.SRC_ATOP);
7
eli 16 जुलाई 2019, 16:34

अपने मटेरियल बटन के लिए बैकग्राउंड बदलने के लिए आपको अपना कलरएक्सेंट बदलना चाहिए।

Android:background विशेषता का उपयोग न करें। मटेरियलबटन अपनी पृष्ठभूमि को खींचने योग्य प्रबंधित करता है, और एक नई पृष्ठभूमि सेट करने का मतलब है कि मैटेरियलबटन अब गारंटी नहीं दे सकता है कि इसके द्वारा पेश की गई नई विशेषताएं ठीक से काम करेंगी। यदि डिफ़ॉल्ट पृष्ठभूमि बदल जाती है, तो MaterialButton अच्छी तरह से परिभाषित व्यवहार की गारंटी नहीं दे सकता है।

भरे हुए बटनों के लिए, यह वर्ग आपकी थीम के ?attr/colorAccent का उपयोग बैकग्राउंड टिंट कलर के लिए और व्हाइट टेक्स्ट कलर के लिए करता है। अधूरे बटनों के लिए, यह वर्ग टेक्स्ट के रंग के लिए ?attr/colorAccent और बैकग्राउंड टिंट के लिए पारदर्शी का उपयोग करता है।

2
Min Khant Lu 28 सितंबर 2018, 19:50

materialButton.setBackgroundColor( ContextCompat.getColor(this@MyActivity, R.color.myCustomColor))

सामग्री डिजाइन निर्भरता के साथ कार्य करना
implementation 'com.google.android.material:material:1.2.0-alpha05'

0
raed 30 अप्रैल 2020, 16:54

ये कोशिश करें

Drawable drawable = DrawableCompat.wrap(mButton.getBackground());
drawable.mutate();
DrawableCompat.setTint(drawable, getResources().getColor(R.color.my_color));
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
-1
Rishabh876 21 नवम्बर 2019, 14:32

MaterialButton.setBackgroundColor (ContextCompat.getColor (यह @ MyActivity, R.color.myCustomColor));

-1
Nurseyit Tursunkulov 25 मार्च 2020, 22:41