मैं एक DrawerLayout
के साथ एक गतिविधि है। मैं दराज को दो अलग-अलग तरीकों से खोल सकता हूं ... स्क्रीन के बाएं क्षेत्र से दाईं ओर स्वाइप करके और ऐप शीर्षक पर क्लिक करके। मैं केवल एक शीर्षक DO, नहीं किसी एप्लिकेशन आइकन को प्रदर्शित किया । मैंने इसे Google द्वारा अनुशंसित रूप में कार्यान्वित किया है: Creating a Navigation Drawer: Open and Close with the App Iconकेवल शीर्षक (कोई ऐप्लिकेशन आइकन) के साथ टॉगल DrawerLayout?
सबकुछ दराज को खोलने और बंद करने तक कार्यात्मक है। हालांकि, यह मानक DrawerLayout
आइकन कि इस्तेमाल किया जा के लिए लगता है प्रदर्शित नहीं करता है। इसके बजाय मुझे नियमित रूप से देखभाल मिलती है (संकेत से कम की तरह दिखता है)।
जैसे ही मैं एप्लिकेशन आइकन वापस ActionBar
यह अपेक्षा के अनुरूप काम शुरू होता है में जोड़ने के रूप में। दराज लेआउट आइकन प्रदर्शित होता है और जब ड्रावर खोला जाता है या बंद होता है तो एनिमेट करता है। मैंने अपनी शैलियों एक्सएमएल फ़ाइल और प्रोग्रामेटिक रूप से दोनों ऐप आइकन को हटाने का प्रयास किया है।
क्या ऐप आइकन के बिना DrawerLayout
आइकन काम करने का कोई तरीका है ???
अद्यतन: मुझे एक काम मिल गया है, लेकिन यह समाधान से कहीं अधिक हैक है। मैं बस एक 1x1 पिक्सेल पारदर्शी PNG (blank.png) बनाया और मेरे styles.xml फ़ाइल में मेरी एप्लिकेशन आइकन के रूप में यह निर्धारित किया है। नीचे सभी रिश्तेदार कोड है:
styles.xml
<style name="MyCustomTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyCustomActionBar</item>
<item name="android:icon">@drawable/blank</item>
</style>
<style name="MyCustomActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:displayOptions">showHome|showTitle|homeAsUp</item>
</style>
MainActivity -> onCreate()
this.navDrawerToggle = new ActionBarDrawerToggle
(
this,
this.navDrawerLayout,
R.drawable.icon_nav_drawer,
R.string.nav_drawer_open,
R.string.nav_drawer_closed
)
{
public void onDrawerClosed(View view) {}
public void onDrawerOpened(View drawerView) {}
};
MainActivity -> onPostCreate()
super.onPostCreate(savedInstanceState);
this.navDrawerToggle.syncState();
MainActivity -> onResume()
this.navDrawer.setOnItemClickListener(new DrawerItemClickListener());
this.navDrawerLayout.setDrawerListener(this.navDrawerToggle);
MainActivity -> onPause()
this.navDrawer.setOnItemClickListener(null);
this.navDrawerLayout.setDrawerListener(null);
MainActivity -> onConfigurationChanged (विन्यास newConfig)
super.onConfigurationChanged(newConfig);
navDrawerToggle.onConfigurationChanged(newConfig);
MainActivity -> onOptionsItemSelected (MenuItem आइटम)
if (this.navDrawerToggle.onOptionsItemSelected(item)) {return true;}
else
{
// A bunch of item click handling happens here...
return true;
}
अगली बार, एक साइड नोट के रूप में, कृपया यह जानने के लिए कुछ कोड जोड़ें कि आप क्या खराब हैं राजा के साथ – velazcod
क्षमा करें ... कोड पोस्ट किया गया! – Jabari
नीचे मेरा अपडेट देखें। शैली पर सेट करने की कोशिश करने के बजाय setDisplayOptions का उपयोग करना इसे ठीक करता है। – velazcod