[英]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.