2012-06-30 13 views
6

में दिखाई नहीं दे रहा है, मैं अपने ऐप को आईसीएस लुक में आराम करने और एबीएस के साथ महसूस करने की कोशिश कर रहा हूं। एक्शनबार प्राप्त करना अच्छा और सीधा था, हालांकि मेनू आइटम जोड़ना नहीं था।एक्शनबैरशेलॉक आइटम ओवरफ़्लो

मेरे कोड लगता है:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 
     MenuInflater inflater = getSupportMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 

सभी उचित आयात किया जा रहा है।

और मेरे menu.xml इस प्रकार है:

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/backup" android:title="@string/backupLabel"/> 
    <item android:id="@+id/restore" android:title="@string/restoreLabel"/> 
</menu> 

ActionBar शो, लेकिन मेनू एक 2.1 मेनू के रूप में व्यवहार - केवल कोई अतिप्रवाह उपलब्ध साथ मेनू बटन से सक्रिय करें। यह आईसीएस एमुलेटर पर भी सच है - जहां मुझे मेनू को सक्रिय करने के लिए मेनू बटन का उपयोग करना होगा।

यदि मैं एंड्रॉइड जोड़ता हूं: showAsAction = "ifRoom" तो आइटम क्रिया वस्तुओं के रूप में दिखाई देते हैं - लेकिन ओवरफ़्लो में नहीं, जहां मैं उन्हें हमेशा चाहूंगा।

क्या यह सब समझ में आता है?

मुझे क्या याद आ रही है?

+0

http://stackoverflow.com/questions/9286822/how-to-force-use-of-overflow-menu-on -डिवाइस-साथ-मेनू-बटन –

+0

http://stackoverflow.com/questions/8758263/how-to-force-overflow-menu-on-android-actionbar-compat –

+0

पॉल ने आपके मुद्दे को प्रदान किए गए लिंक द्वारा तय किया है? – Warpzit

उत्तर

0

आप एक ऐसे एमुलेटर का उपयोग कर रहे हैं जिसमें एक हार्डवेयर कीबोर्ड सक्षम है, न कि सॉफ़्टवेयर। ओवरफ्लो मेनू में कार्रवाइयों को देखने के लिए, सोफवाटर नियंत्रण वाले एमुलेटर का उपयोग करें। स्क्रीन्सशॉट इसे करने के दो तरीके दिखाते हैं।

  • संपादित एक मौजूदा AVD

Edit an existing AVD

  • क्लोन एक मौजूदा डिवाइस प्रोफ़ाइल

Clone an existing device profile

1

ForceOverflow एबीएस 4.1.2 में हटा दिया गया है जिसमें रचनात्मक दृष्टि है कि इसे कभी भी इसमें नहीं बनाया जाना चाहिए (चेंजलॉग नोट देखें)। मुझे पूरा भरोसा है कि आप अपेक्षित व्यवहार देख रहे हैं; आईसीएस + (जैसे मेरा नेक्सस एस) चलाने वाले मेनू बटन वाला कोई भी उपकरण अतिप्रवाह मेनू प्रदर्शित नहीं करता है क्योंकि एक समर्पित हार्डवेयर कुंजी - 'मेनू' बटन है।

नकली डिवाइस से मेनू बटन को निकालने के लिए एमुलेटर कॉन्फ़िगरेशन का उपयोग करें और एंड्रॉइड ओवरफ़्लो मेनू को जोड़ने के बारे में जानेंगे।

4

सिर्फ इस कोड boath मेनू का उपयोग ActionBar पर हैं:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/backup" 
     android:showAsAction="ifRoom" 
     android:title="backupLabel"/> 
    <item 
     android:id="@+id/restore" 
     android:showAsAction="ifRoom" 
     android:title="restoreLabel"/> 
</menu> 

की तरह अपने रंग-रूप:

enter image description here

क्योंकि आप उपयोग कर रहे हैं

android:showAsAction="ifRoom" : Only place this item in the Action Bar if there is room for it. 

और

android:showAsAction="Never" : Never place this item in the Action Bar. 

अगर आप की तरह उपयोग करें:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

     <item 
      android:id="@+id/backup" 
      android:showAsAction="ifRoom" 
      android:title="backupLabel"/> 
     <item 
      android:id="@+id/restore" 
      android:title="restoreLabel"/> 
    </menu> 

तो इसकी नज़र: एक ActionBar पर है & 2 खुला है, जब आप मेनू बटन दबाएँ।

enter image description here

नोट: इसके < 3.0 Android ओएस में ठीक काम कर रहा है ताकि चिंता मत करो। लेकिन यदि आपके पास android:showAsAction="ifRoom" के साथ एकाधिक मेनू आइटम (अधिक तो 3) हैं तो यह आपको डिवाइस स्क्रीन आकार पर निर्भर करता है।

Protrait में :

enter image description here

लैंडस्केप में :

enter image description here


ऊपर मैं तुम्हें saggest करूँगा सब करने के बाद में जिस तरह से नीचे का उपयोग करने के < 3.0 Android ओएस:

enter image description here

कोड:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/file" 
     android:showAsAction="ifRoom" 
     android:title="file"> 

     <!-- "file" submenu --> 
     <menu> 
      <item 
       android:id="@+id/create_new" 
       android:title="create_new"/> 
      <item 
       android:id="@+id/open" 
       android:title="open"/> 
     </menu> 
    </item> 

</menu> 
संबंधित मुद्दे