【发布时间】:2016-12-14 01:24:30
【问题描述】:
我希望我的导航抽屉在单击时顺利打开片段并自行关闭而没有任何延迟。
这里是代码 -
@Override
protected void onCreate(Bundle savedInstanceState) {
navigationView.setNavigationItemSelectedListener(this);
drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
// Set the drawer toggle as the DrawerListener
drawerLayout.setDrawerListener(drawerToggle);
drawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setHomeButtonEnabled(false);
}
onNavigationItemSelected(navigationView.getMenu().getItem(0));
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
/* clear backstack of all elements but the last one
* which is the car keys screen
*/
for (int i = 1; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
}
navigationView.getMenu().findItem(R.id.navigation_settings).setVisible(false);
switch (menuItem.getItemId()) {
case R.id.navigation_home:
fragment = new HomeFragment();
break;
}
if (menuItem.getGroupId() == R.id.group_top) {
navigationView.getMenu().setGroupCheckable(R.id.group_bottom, false, true);
navigationView.getMenu().setGroupCheckable(R.id.group_top, true, true);
} else {
navigationView.getMenu().setGroupCheckable(R.id.group_bottom, true, true);
navigationView.getMenu().setGroupCheckable(R.id.group_top, false, true);
}
//Update highlighted item in the navigation menu
menuItem.setChecked(true);
if (fragment != null) {
drawerLayout.closeDrawer(navigationView);
setTitle(menuItem.getTitle());
menuItem.setChecked(true);
fm.beginTransaction()
.replace(R.id.container, fragment)
.addToBackStack("fragment")
.commit();
return true;
}
return false;
}
这是在MainActivity。
我哪里出错了?为什么运行不顺畅?
提前谢谢你:)
【问题讨论】:
-
关闭前的导航抽屉