जब कोई आइटम इससे दबाया जाता है तो नेविगेशन ड्रॉअर को कैसे बंद करें?


84

आदर्श रूप से नेविगेशन ड्रावर को बंद कर दिया जाना चाहिए क्योंकि कुछ आइटम को इससे दबाया गया है, लेकिन यह स्वचालित रूप से नहीं हो रहा है। यह कैसे करना है ? धन्यवाद!


नेविगेशन दराज प्राप्त करने के लिए आप किस परिवाद का उपयोग करते हैं?
आयन ऑलर्स

जवाबों:


238

समझ गया!

private DrawerLayout mDrawerLayout;
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerLayout.closeDrawers();

पूरी तरह से ठीक काम।


2
जो लायक हो, उससे कुछ पूछो।
AXSM

3
क्या बिना एनीमेशन के इसे बंद किया जा सकता है?
हमजे सोबोह

1
हमज़ेह - mDrawerLayout.closeDrawer (Gravity.LEFT, false); एनीमेशन के बिना इसे बंद करने का परिणाम होगा
Psi-Ed

mDrawerLayout.closeDrawer (GravityCompat.START, false);
user3560827


5
DrawerLayout mDrawerLayout= (DrawerLayout) findViewById(R.id.drawer_layout)

closeDrawer(); // called when you want to close

public void closeDrawer() {
  if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
    mDrawerLayout.closeDrawer(GravityCompat.START);
  }
}

2

OnNavigationItemSelected के दाईं ओर नीचे जहां स्विच केस समाप्त होता है, आपको यह सही करना चाहिए। mDrawerLayout.closeDrawers ();

public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){

        }
   mDrawerLayout.closeDrawers();
   return true;
}

2

यदि आपके पास ड्राअर लेआउट के रूप में mDrawerLayout है, तो इसे खोलने पर आप इसे बंद कर सकते हैं।

@Override
public void onBackPressed() {
    if (this.mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        this.mDrawerLayout.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

1
closeDrawer();//when you want to call

public void closeDrawer() {
    if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        mDrawerLayout.closeDrawer(GravityCompat.START);
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.