में एक्शन बार शीर्षक रंग को कैसे बदला जाए, मुझे v11 और ऊपर के लिए प्रोग्रामेटिक रूप से एक्शन एंड्रॉइड एक्शन बार शीर्षक रंग बदलने में परेशानी हो रही है। मैं इसे एक्सएमएल में कर सकता हूं लेकिन कोड में गतिशील रूप से इसे बदलने की जरूरत है। मुझे इस बारे में कैसे बर्ताव करना चाहिए? अग्रिम में धन्यवाद।कोड
कोड
उत्तर
ActionBar
शीर्षक आईडी छिपी हुई है, या दूसरे शब्दों में, यह आंतरिक है और इसे एक्सेस करना आम तौर पर नहीं किया जा सकता है। आप Resources.getIdentifier
का उपयोग कर View.findViewById
का उपयोग कर इसका संदर्भ दे सकते हैं।
ले लो action_bar_title
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
अब आप एक TextView
TextView abTitle = (TextView) findViewById(titleId);
abTitle.setTextColor(colorId);
साथ आईडी का उपयोग कर सकते हैं, तो आप Sherlock Actionbar का उपयोग आप शर्लक-ActionBar-आईडी का उपयोग कर सकते के लिए आईडी समर्थित एक्शनबार के लिए (3.0 से नीचे एंड्रॉइड)
int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
if (0 == titleId)
titleId = com.actionbarsherlock.R.id.abs__action_bar_title;
बस ऐसा करें: getSherlockActivity()। GetSupportActionBar() प्राप्त करें। setTitle ("शीर्षक"); ?? – marchinram
कारण आप ऐसा कर सकते हैं, जब आप केवल शीर्षक बदलना चाहते हैं। लेकिन यह सवाल शीर्षक-रंग बदलने वाला था। – salcosand
इसलिए आपको एक्शनबार में टेक्स्टव्यू प्राप्त करने की आवश्यकता है और वहां पहुंचने के लिए आपको टेक्स्ट व्यू के लिए आईडी की आवश्यकता है। और आईडी शेरलॉक एक्शनबार और नेटिव में अलग है। – salcosand
एक और तरीका है एचटीएमएल
उपयोग कर रहा हैgetSupportActionBar().setTitle((Html.fromHtml("<font color=\"#FF4444\">" + getString(R.string.some_string) + "</font>")));
यह मेरी राय में सबसे बुलेट प्रूफ उत्तर है। – Ercan
यह मेरे लिए इसे सेट करने का सबसे विश्वसनीय तरीका है। – DarkWolffe
आप शीर्षक
Spannable text = new SpannableString(actionBar.getTitle());
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
actionBar.setTitle(text);
यह एक स्वीकृत समाधान होना चाहिए, एक आंतरिक एपीआई (action_bar_title आईडी) पर भरोसा करना एक बुरा विचार है क्योंकि यह बिना किसी सूचना के बदल सकता है। – fernandohur
यह सबसे अच्छा जवाब है। विशेष रूप से Kit7at पर v7 appcompat लाइब्रेरी का उपयोग करके action_bar_title आईडी समाधान पर विफल। इस जवाब का प्रयोग करें! – Codeversed
एक आकर्षण की तरह काम करता है – Dien
के रंग सेट करने के हैं का उपयोग कर v7 appcompat library (R22 के साथ परीक्षण किया) तो आप कॉल कर सकते हैं एक SpannableString और ForegroundColorSpan उपयोग कर सकते हैं setTitleTextColor()
Toolbar
ऑब्जेक्ट पर जो सभी एपीआई स्तरों के लिए एक्शन बार को प्रतिस्थापित करता है। उदाहरण के लिए:
Toolbar actionBarToolbar = (Toolbar)activity.findViewById(R.id.action_bar);
if (actionBarToolbar != null)
actionBarToolbar.setTitleTextColor(Color.RED);
जब लॉलीपॉप के लिए संकलित करने के लिए मेरे प्रोजेक्ट को अपग्रेड किया गया, तो यह उत्तर एकमात्र सही है (एडनील का उत्तर क्रैश) – Fraser
मैं समर्थन लाइब्रेरी 21.0.3 का उपयोग कर रहा हूं और यह अब और काम नहीं कर रहा है, अगर मैंने स्पष्ट रूप से कोई त्रुटि नहीं की है। सबसे पहले इवानपी का समाधान काम कर रहा है। –
@ ČikićNenad appcompat r22 के लिए फिक्स्ड (कम से कम, आर 21 के साथ भी काम करना चाहिए)। – matiash
- 1. कोड कोड
- 2. ग्रेड कोड कोड सुझाव
- 3. मॉडेम कोड एंड्रॉइड कोड
- 4. स्टेटमेंट्स बनाम कोड कोड
- 5. इनोसेटअप: कोड [कोड] अनुभाग
- 6. कोड
- 7. कोड
- 8. कोड
- 9. कोड
- 10. कोड
- 11. कोड
- 12. कोड
- 13. कोड
- 14. कोड
- 15. कोड
- 16. कोड
- 17. [कोड]
- 18. कोड
- 19. कोड
- 20. कोड
- 21. कोड
- 22. कोड
- 23. कोड
- 24. कोड
- 25. कोड
- 26. कोड
- 27. कोड
- 28. कोड
- 29. कोड
- 30. कोड
यह मेरे मोटो रेजर पर काम नहीं करता है। – antonio081014
यह मेरे लिए काम नहीं कर रहा है:/ – Si8
यह बात मेरे लिए काम नहीं करती है। सुनिश्चित करने के लिए, एक्शनबार में कोई स्थिर शीर्षक नहीं है, इसलिए मैं getIdentifier विधि कॉल के भीतर "action_bar_title" का उपयोग कर रहा हूं। "आईडी" और "एंड्रॉइड" के लिए भी चला जाता है। मैं v7-appcompat लाइब्रेरी का उपयोग कर रहा हूँ। – MSIslam