5

इम में केवल एक आइटम मेरे एप्लिकेशन में एप्लिकेशन compat विषय का उपयोग कर, और ActionBar में मैं एक आइटम है कि एक प्रतीक के रूप में दिखाया जाना चाहिए के साथ एक मेनू है - लेकिन इसके बजाय मैं इसActionbar लटकती दिखाई देता है जब मेनू

तरह मेनू बटन मिलता है यहाँ

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/action_play" 
     android:icon="@drawable/play" 
     android:orderInCategory="100" 
     android:showAsAction="always"/> 

</menu> 

और कैसे मैं ActionBar प्रारंभ पर कोड है::

enter image description here

यहाँ मेनू एक्सएमएल के अपने कोड है

getSupportActionBar().setHomeButtonEnabled(true); 
     getSupportActionBar().setTitle(title); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setDisplayShowHomeEnabled(false); 

और मेनू दिखाने:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.names, menu); 
     playStop = menu.findItem(R.id.action_play); 
     return true; 
    } 

तो कोई मेरी मदद कर सकते एकदम सही ढंग से मेनू आइटम प्रदर्शित करने के लिए?

धन्यवाद

+0

क्या आप वाकई आइकन initialisatio हैं की जरूरत है एन उचित है? – Keshav1234

उत्तर

8

समर्थन पुस्तकालय का उपयोग करना, android:showAsAction अपने कार्य नहीं करेंगे। तो आपका मेनू घोषणा सही नहीं है। documentation

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:yourapp="http://schemas.android.com/apk/res-auto" > 
    <item android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      yourapp:showAsAction="ifRoom" /> 
    ... 
</menu> 

अगर कोई कार्रवाई पट्टी में आइटम के लिए पर्याप्त जगह नहीं है, यह कार्रवाई अतिप्रवाह में दिखाई देगा।

का प्रयोग एक्सएमएल

सूचना है कि showAsAction ऊपर विशेषता एक कस्टम नाम स्थान टैग में परिभाषित का उपयोग करता है समर्थन पुस्तकालय से जिम्मेदार बताते हैं। किसी भी XML समर्थन लाइब्रेरी द्वारा परिभाषित विशेषताओं का उपयोग करते समय यह आवश्यक है, क्योंकि ये गुण पुराने उपकरणों पर एंड्रॉइड फ्रेमवर्क में मौजूद नहीं हैं। तो समर्थन लाइब्रेरी द्वारा परिभाषित सभी विशेषताओं के लिए आपको उपसर्ग के रूप में अपने स्वयं के नामस्थान का उपयोग करना होगा।


तो अपने मेनू एक्सएमएल होना चाहिए

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id="@+id/action_play" 
     android:icon="@drawable/play" 
     android:orderInCategory="100" 
     app:showAsAction="always"/> 

</menu> 
+0

सही उत्तर और महान स्पष्टीकरण के लिए धन्यवाद! –

+0

@DarkoPetkovski आपका सबसे स्वागत है :) –

+2

बस यह जोड़ना चाहता था कि यह केवल तभी मान्य होगा जब आप समर्थन लाइब्रेरी का उपयोग करें। यदि आप डिफॉल्ट '' 'एक्शनबार 'का उपयोग कर रहे हैं तो प्रश्न में पोस्ट किया गया मूल कोड काम करेगा। –

0

आप का उपयोग करने के

app:showAsAction="always" 

बजाय

android:showAsAction="always" 
संबंधित मुद्दे