के माध्यम से एक्शन आइटम बटन प्रोग्रामेटिक रूप से दिखाएं/छुपाएं I ActionBarSherlock का उपयोग कर रहा हूं। मैं एक निश्चित उपयोगकर्ता ऑपरेशन के जवाब में एक्शन बार में दो बटन प्रदर्शित करने में सक्षम होना चाहता हूं। उपयोगकर्ता ऑपरेशन एक्शन बार से पूरी तरह से असंबंधित है। बटन को देखने के लिए बटन की दृश्यता को नियंत्रित करने की आवश्यकता है। साथ ही, उन बटनों पर क्लिक करने के लिए प्रतिक्रिया मेरे अपने आवेदन कोड द्वारा संभाला जाएगा।एक्शनबैरशेलॉक: एक विधि कॉल
बटन आदर्श रूप से android:showAsAction="ifRoom|withText"
का उपयोग करते हुए एक्शन आइटम के रूप में मेनू आइटम को परिभाषित करते समय बनाए गए लोगों की तरह दिखेंगे, जैसा कि here सचित्र है।
मेरे समस्या यह है कि जहाँ तक मैं बता सकता हूँ, मानक ActionBar
एपीआई दिखाने या होगा पर कार्रवाई मद बटन को छिपाने के लिए इस तरह का कोई तंत्र प्रदान करता है है, और केवल समय है कि मेनू आइटम परिभाषित किया जा सकता onCreateOptionsMenu()
की है जो भीतर है सिस्टम द्वारा बुलाया पाठ्यक्रम।
मेरा विश्वास यह है कि मैं इस तरह के बटन जोड़ने और उन्हें दिखाने/छुपाने का एकमात्र तरीका उनके लिए कस्टम लेआउट बनाना और .setCustomView()
का उपयोग एक्शन बार में रखने के लिए करना है। क्या लोग आम तौर पर उस से सहमत होंगे, या क्या मुझे कुछ याद आया है?
यदि मैं .setCustomView()
का उपयोग करने के मार्ग पर जाता हूं, तो मैं अपने बटन को एक्शन आइटम बटन के समान दिखाना चाहता हूं जो एक्शनबारशेलॉक मेनू आइटम के लिए प्रदर्शित करता है जिसमें विशेषता android:showAsAction="ifRoom|withText"
है। ऐसा करने के लिए, क्या कोई मुझे सलाह दे सकता है कि ActionBarSherlock लाइब्रेरी के भीतर से कौन सी विशेष थीम, शैली या लेआउट का उपयोग करना चाहिए? मैंने पहले से ही R.layout.abs__action_menu_item_layout
का उपयोग करने का प्रयास किया है, लेकिन लेआउट में CapitalizingButton
की मुद्रास्फीति का प्रयास करते समय colorStateList
से संबंधित अपवाद उत्पन्न करने का प्रयास किया गया है।
धन्यवाद, एमएच। यहां कई विचार हैं जिनके लिए मैं आभारी हूं। अभी भी एक मुद्दा है जो मुझे आश्चर्यचकित करता है अगर मुझे अभी भी '.setCustomView()' का सहारा लेना होगा। मुद्दा यह है कि मैं टेक्स्ट लेबल हमेशा दिखाना चाहता हूं, सिर्फ आइकन ही नहीं। मेरे एचटीसी वन एक्स पर ओवरफ्लो आइकन और एक एक्शन आइटम के अलावा एबीएस पर कुछ भी नहीं है, एक्शन आइटम का टेक्स्ट लेबल केवल परिदृश्य में प्रदर्शित होता है, भले ही अभिविन्यास में पर्याप्त जगह हो। मुझे एहसास है कि एक्शन बार स्क्रीन घनत्व और बार चौड़ाई के आधार पर तर्क लागू करता है यह निर्धारित करने के लिए कि लेबल दिखाई दे रहा है या नहीं। मैं थोड़ा और जांच करूँगा। – Trevor
जुज़ ने आपके मेनू इटिम तर्क को आपके द्वारा दी गई सलाह का उपयोग करके टुकड़ों के भीतर दोबारा लिखा - अब बहुत बेहतर काम करता है। कोई भी इस तरह से जा रहा है - सेट हैसमेनूऑप्शन (सत्य) करना सुनिश्चित करें और @MH के रास्ते पर जाएं। सुझाव दिया गया है (मैं दोनों पर निर्भर करता हूं और मेनू मेनू ऑब्जेक्ट्स को संदर्भित करता हूं)। – kape123
"व्यक्तिगत रूप से, मैं पहला दृष्टिकोण पसंद करता हूं, क्योंकि आप सभी मेनू-संबंधित तर्क को एक साथ समूहीकृत रखते हैं और दृश्यता कुछ प्रकार के राज्य/मॉडल पर आधारित होती है।" हां, सब कुछ एक साथ, भगवान वस्तु में, गतिविधि कहा जाता है। और भगवान वस्तु एक विरोधी पैटर्न है। –