2016-07-29 168 views
2

我在我的應用中使用了導航抽屜。當用戶點擊任何項目時,它會轉到另一個活動,但當用戶回到抽屜頁面時,它仍然處於打開狀態。如何在點擊物品後關閉該抽屜。點擊任何項目後關閉導航抽屜

+0

在呼叫意圖之前關閉抽屜。如需更多幫助,請發佈您的代碼。 –

+0

我已發佈解決方案嘗試一下。如果仍然沒有解決,那麼在這裏發佈您的代碼 –

+0

[如何關閉導航抽屜時,從它按下一個項目?]的可能重複(http://stackoverflow.com/questions/19194526/how-to-close-navigation-drawer -when-an-item-is-press-from-it) –

回答

1

使用closeDrawer()方法關閉抽屜,並啓動抽屜監聽器上的其他活動。

例如。

@Override 
public void onDrawerClosed(View drawerView) { 
    super.onDrawerClosed(drawerView); 

    //Start your activity 
} 
1

您可以使用drawerLayout.closeDrawers();關閉NavigationDrawer你去到另一個活動

0

我想你錯過closeDrawer()上的導航項目的點擊啓動其他前只需要調用此方法之前Intent

drawerLayout.closeDrawer(GravityCompat.END); 
0
@SuppressWarnings("StatementWithEmptyBody") 
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
int id = item.getItemId(); 
    // Create a new fragment and specify the fragment to show based on nav item clicked 
    Fragment fragment = null; 
    Class fragmentClass = null; 
    if (id == R.id.nav_item1) { 
     fragmentClass = home.class; 
     // Handle the camera action 
    } 
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
if(fragmentClass.newInstance() instanceof Fragment) { 
      fragment = (Fragment) fragmentClass.newInstance(); 

      if (fragmentClass.getSimpleName().equals("home")) { 

       // Insert the fragment by replacing any existing fragment 
       FragmentManager fragmentManager = getSupportFragmentManager(); 

       fragmentManager.beginTransaction().replace(R.id.home_layout, fragment).commit(); 
       // Highlight the selected item has been done by NavigationView 
       item.setChecked(true); 
       // Set action bar title 
       setTitle(item.getTitle()); 
       // Close the navigation drawer 
       drawer.closeDrawers(); 
      } 
     }