简体   繁体   English

单击其任何项目后关闭导航抽屉

[英]close navigation drawer after clicking on any of its item

I have used navigation drawer in my app.我在我的应用程序中使用了导航抽屉。 When user click any of its item it will go to another activity but when user comes back to the drawer page it is still open.当用户单击其任何项目时,它将转到另一个活动,但当用户返回抽屉页面时,它仍处于打开状态。 How to close that drawer once its item is clicked.单击其项目后如何关闭该抽屉。

You can use drawerLayout.closeDrawers();您可以使用drawerLayout.closeDrawers(); to close the NavigationDrawer before you go to another Activity在转到另一个活动之前关闭NavigationDrawer

Use closeDrawer() method to close the drawer and start your other activity on the listener of drawer.使用closeDrawer()方法关闭抽屉并在抽屉的侦听器上启动其他活动。

For Example.例如。

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

    //Start your activity
}
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);
     }
 }

我想你错过了closeDrawer()只是在点击导航项Intent启动其他之前调用这个方法

 drawerLayout.closeDrawer(GravityCompat.END);
 @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();
            }
        }

Just add closeDrawer() inside onNavigationItemSelected() to close the drawer on selecting any item on Navigation Drawer.只需在closeDrawer()添加closeDrawer() onNavigationItemSelected()在选择导航抽屉上的任何项目时关闭抽屉。

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    int id = item.getItemId();

    //write your if logic here

    drawer.closeDrawer(GravityCompat.START,true);
    return false;
}

Probably the navigation view is not in the front.可能导航视图不在前面。 Try getting it to front by mNavigationView.bringToFront();尝试通过mNavigationView.bringToFront();把它放在前面mNavigationView.bringToFront(); . .

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 单击导航抽屉中RecyclerView中的项目后如何关闭导航抽屉 - How to close the navigation drawer after clicking on item in RecyclerView that is in the nav drawer 固定时间不单击任何项​​目后如何关闭打开的导航抽屉? - How to close an opened navigation drawer after a fixed time not clicking on any items? 单击列表视图后无法关闭导航抽屉 - can't close the Navigation drawer after clicking in a listview 单击导航抽屉中的项目后尝试启动地图活动 - Trying to initiate a Maps Activity after clicking a item in a Navigation Drawer 选择项目后如何关闭导航抽屉? - How do I close a navigation drawer after an item is selected? 按下项目后如何立即关闭导航抽屉? - How to close navigation drawer immediately after an item is pressed? 单击菜单项后,我的导航抽屉没有关闭? - My navigation Drawer not close after I click the menu item? 单击抽屉中的任何项目而不在android中关闭时,更改导航抽屉中的视图和内容 - Changing the view and content inside navigation drawer when clicking on any item of drawer without closing in android 单击导航抽屉关闭自身 Android studio - Clicking on navigation drawer close itself Android studio 通过单击导航抽屉中的某个项目返回活动主界面 - Return to the activity main by clicking in a item of the navigation drawer
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM