2014-11-27 11 views
9

मुझे अपने एक्शन बार के लिए अपना आइकन प्रारंभ करने में एक साधारण समस्या है। मैं एंड्रॉइड एसडीके 5 का उपयोग कर रहा हूं और android.support.v4.app.ActionBarDrawerToggle; को हटा दिया गया था, मैंने v7 समर्थन आयात किया और मेरे आयात को निम्नलिखित के साथ बदल दिया: android.support.v7.app.ActionBarDrawerToggle; यानी v7 के साथ एक ही पैकेज।एक्शनबैडड्राउटर टॉगल() आइकन एंड्रॉइड एसडीके 5 एक्शनबार में एक्शनबार में सेट नहीं किया जा सकता है

अब जब मैं अपने DrawerLayout से आयातित वस्तु के साथ संबद्ध करने के लिए मेरी ActionBarDrawerToggle वस्तु प्रारंभ: import android.support.v4.widget.DrawerLayout; मैं एक तर्क है, जो ठीक लगता है हटाने के लिए मजबूर कर रहा हूँ (पता नहीं क्यों, हालांकि है!)। लेकिन मेरा आइकन मेरे एक्शनबार में नहीं जाता है।

mActionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, 
      R.drawable.ic_drawer, R.string.drawer_open) { 

     /** Called when a drawer has settled in a completely closed state. */ 
     @Override 
     public void onDrawerClosed(View view) { 
      super.onDrawerClosed(view); 
      invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 

     } 

     /** Called when a drawer has settled in a completely open state. */ 
     @Override 
     public void onDrawerOpened(View view) { 
      super.onDrawerOpened(view); 
      invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 

     } 
    }; 

मैं अपने संसाधन में छवि है अर्थात् R.drawable.ic_drawer

मैं नहीं कर सकते क्यों मेरे आइकन v7 में प्रकट नहीं होता लगता है लग रहे हैं: यहाँ मेरी ActionBarDrawerToggle वस्तु के लिए अपने प्रारंभ है।

पीएस कोड पूरी तरह से ठीक काम करता है, वास्तव में जब मैं v4 आयात पर वापस स्विच करता हूं और टॉगल ऑब्जेक्ट प्रारंभिक (बदसूरत बहिष्कृत क्रॉस लाइन के साथ नंगे होने के लिए अतिरिक्त तर्क) के लिए अतिरिक्त तर्क जोड़ता हूं, आइकन दिखाई देता है लेकिन v7 में नहीं। अग्रिम :)

उत्तर

8
असल

अगर आप नए v7.ActionBarDrawerToggle की जावाडोक को देखो क्या आपको पता हो सकता है कि नया वर्ग निर्माता, कि एक तर्क के रूप Drawable लेता है प्रदान नहीं करता है में

धन्यवाद - 3 तर्क आप जहां प्रदान की है आपका ड्रायबल एक स्ट्रिंग रिसोर्स है जो ड्रॉवर खोलने का वर्णन करता है। यदि आप कस्टम आइकन सेट करना चाहते हैं तो आप एक और ActionBarDrawerToggle निर्माता का उपयोग करना होगा: एक दराज चिह्न के रूप में इस्तेमाल किया जाएगा

ActionBarDrawerToggle(Activity activity, DrawerLayout drawerLayout, Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes) 

उस मामले टूलबार नेविगेशन आइकन में

+2

वहाँ किसी भी तरह से एक आइकन जोड़ना है और अभी भी घर दराज ActionBar क्लिक करने की घटना है ..? – DreamBigAlvin

+3

मैं कस्टम आइकन के साथ Toolbar.setNavigationIcon (int resId) का उपयोग करता हूं और इसके नीचे चयन करने योग्य पृष्ठभूमि है। टूलबार की विधि सेटलोगो (ड्रायबल ड्रॉबल) –

1

हालांकि v4.ActionBarDrawerToggle पदावनत किया गया था, तो आप उपयोग कर सकते हैं एक और तरीका नीचे दिए गए उदाहरण के लिए चिह्न बदलने के लिए:

getSupportActionBar().setHomeButtonEnabled(true); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu_drawer); 
संबंधित मुद्दे