2016-07-29 169 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(); 
      } 
     }