इसलिए मैंने डिज़ाइन सपोर्ट लाइब्रेरी में नए स्नैकबार का उपयोग करना शुरू कर दिया है, लेकिन मैंने पाया कि जब आप अपनी थीम में "एंड्रॉइड: टेक्स्ट कलर" को परिभाषित करते हैं, तो यह स्नैकबार के टेक्स्ट रंग पर लागू होता है। यह स्पष्ट रूप से एक समस्या है अगर आपका प्राथमिक पाठ रंग गहरा है।
क्या किसी को इसके चारों ओर एक रास्ता पता है या मेरे पाठ को कैसे रंग देना चाहिए, इसके लिए सलाह है?
EDIT जनवरी 2017: (उत्तर-उत्तर)
जबकि नीचे दी गई समस्या को ठीक करने के लिए कुछ कस्टम समाधान हैं, शायद स्नैकबार्स को थीम का सही तरीका प्रदान करना अच्छा है।
सबसे पहले, आपको संभवतः android:textColor
अपने विषयों में परिभाषित नहीं करना चाहिए (जब तक कि आपको वास्तव में विषय का उपयोग करने की गुंजाइश नहीं पता है)। यह मूल रूप से आपके विषय से जुड़ने वाले प्रत्येक दृश्य का पाठ रंग सेट करता है। यदि आप अपने विचारों में पाठ रंगों को परिभाषित करना चाहते हैं जो डिफ़ॉल्ट नहीं हैं, तो android:primaryTextColor
अपने कस्टम दृश्यों में उस विशेषता का उपयोग करें और संदर्भ दें।
हालाँकि, विषयों को लागू करने के लिए Snackbar
, कृपया इस गुणवत्ता मार्गदर्शिका को किसी तृतीय पक्ष सामग्री दस्तावेज़ से संदर्भित करें: http://www.materialdoc.com/snackbar/ (प्रोग्राम थीम के कार्यान्वयन का पालन करें ताकि यह xml शैली पर निर्भर न हो)
सन्दर्भ के लिए:
// create instance
Snackbar snackbar = Snackbar.make(view, text, duration);
// set action button color
snackbar.setActionTextColor(getResources().getColor(R.color.indigo));
// get snackbar view
View snackbarView = snackbar.getView();
// change snackbar text color
int snackbarTextId = android.support.design.R.id.snackbar_text;
TextView textView = (TextView)snackbarView.findViewById(snackbarTextId);
textView.setTextColor(getResources().getColor(R.color.indigo));
// change snackbar background
snackbarView.setBackgroundColor(Color.MAGENTA);
(आप अपने स्वयं के कस्टम Snackbar
लेआउट भी बना सकते हैं, ऊपर दिए गए लिंक को देखें। ऐसा करें यदि यह विधि बहुत अधिक हैकई महसूस करती है और आप अपने कस्टम स्नैकबार को संभावित समर्थन लाइब्रेरी अपडेट के माध्यम से अंतिम रूप देना चाहते हैं तो एक निश्चित विश्वसनीय तरीका चाहते हैं)।
और वैकल्पिक रूप से, आपकी समस्या को हल करने के लिए समान और शायद तेज़ उत्तर के लिए नीचे दिए गए उत्तर देखें।
android:textColorPrimary