2013-01-09 25 views
8

मैं एक परियोजना पर काम कर रहा हूँ बदल गया है और सफेद करने के लिए आवेदन की पृष्ठभूमि स्थापित किया जा रहा है:टोस्ट पृष्ठभूमि रंग करके

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="android:actionBarSize">140dp</item> 
    <item name="android:background">#ffffff</item> 
</style> 

यह काम करता है एक आकर्षण हालांकि समस्या यह है कि टोस्ट संदेश अब किया जा रहा है है एक सफेद पृष्ठभूमि के साथ प्रदर्शित किया। अजीब बात यह है कि मैंने प्रोजेक्ट में स्प्लैश स्क्रीन को एकीकृत किया और जब उपयोगकर्ता टोस्ट संदेश में लॉग इन करता है तो सामान्य रूप से प्रदर्शित होता है।

यह वास्तव में अजीब है और इस मुद्दे पर किसी भी मदद की सराहना करता है।

संपादित करें: स्क्रीनशॉट दिखाने के मुद्दे को जोड़ा गया। स्क्रीनशॉट सिर्फ प्रारंभिक टोस्ट (अवांछित प्रभाव के साथ) के रूप में लिया जाता है बाहर fading जाता है और नया एक (डिफ़ॉल्ट के साथ) में fading है।

enter image description here

उत्तर

14

मैं इस मुद्दे को हल। टोस्ट पृष्ठभूमि रंग में परिवर्तन का कारण उस दृश्य वस्तु के संदर्भ में था जिस तरह से मैं अंदर था।

कोड की निम्न पंक्ति पृष्ठभूमि रंग अवांछित सफेद रंग में परिवर्तित करने के लिए कारण होगा:

Toast.makeText(v.getContext(), "Checking login details...", Toast.LENGTH_SHORT).show(); 

कोड की यह पंक्ति डिफ़ॉल्ट सिस्टम शैली के लिए टोस्ट वापसी होगी:

Toast.makeText(getApplicationContext(), "Checking login details...", Toast.LENGTH_SHORT).show(); 

मुझे यकीन नहीं है कि इस तरह इसे ठीक करने में बड़ी समस्या है क्योंकि मैं केवल सीख रहा हूं। अगर कोई समस्या देख सकता है तो कृपया साझा करें। ऐसा लगता है कि यह ठीक काम कर रहा है।

+1

यह बहुत उपयोगी था – FtheBuilder

0

आप दृश्यों का उपयोग कर सकते हैं करने के लिए आसानी से कस्टम और स्टाइलिश टोस्ट संदेशों । और शायद अपने लेआउट को टोस्ट_लेआउट में बदलें।

चेक इस पोस्ट Toast background changing to match Activity's Theme, यह मदद मिलेगी आप

+0

वास्तव में उस पर आया। वास्तविक बात यह है कि मुझे समझ में नहीं आ रहा है कि मेरे कुछ टोस्ट के पास दूसरों के लिए अलग-अलग शैलियों क्यों हैं ... – Javacadabra

+0

भविष्य के प्रश्नों के लिए समस्या का पूरा संदर्भ रखने के लिए यह अधिक कोड पोस्ट करना बेहतर होगा। वैसे भी, इसे हल करने के लिए बधाई –

0

के लिए मुझे getApplicationContext() का उपयोग कर एक विकल्प नहीं था, और दूसरों को इस एक ही मुद्दा है कि के लिए, तो आप सिर्फ टोस्ट वापस तो जैसे सेट कर सकते हैं डिफ़ॉल्ट सेटिंग्स:

//Create your Toast with whatever params you need 
Toast toast = Toast.makeText(getActivity(), "Refreshing...", Toast.LENGTH_SHORT); 

//Set the background for the toast using android's default toast_frame. 
//Optionally you can set the background color to #646464 which is the 
//color of the frame 
View view = toast.getView(); 
view.setBackgroundResource(android.R.drawable.toast_frame); 

//Get the TextView for the toast message so you can customize 
TextView toastMessage = (TextView) view.findViewById(android.R.id.message); 

//Set background color for the text. 
toastMessage.setBackgroundColor((Color.parseColor("#646464"))); 
toast.show(); 
0

Winthrop के जवाब में नया। # 646464 के रूप में टेक्स्टबॉक्स के पृष्ठभूमि रंग को सेट करने के बजाय, इसे पारदर्शी पर सेट किया जा सकता है ताकि टोस्ट मूल पारदर्शी टोस्ट

private void showToast(Context context,String msg,int duration){ 
     Toast toast = Toast.makeText(context,msg,duration); 

     View view = toast.getView(); 
     view.setBackgroundResource(android.R.drawable.toast_frame); 

     TextView toastMessage = (TextView) view.findViewById(android.R.id.message); 

     toastMessage.setBackgroundColor(Color.TRANSPARENT); 

     toast.show(); 
    } 
संबंधित मुद्दे