您可以通过这种方式来避免抽屉滞后,更改 onItemClick :
layoutDrawer.closeDrawer(linearDrawer);setLastPosition(posicao);new Handler().postDelayed(new Runnable() { @Override public void run() { setFragmentList(lastPosition); } }, 200);编辑:
首选方式应该是在DrawerLayout上设置DrawerListener,然后
onDrawerClosed
像这样设置片段:
Fragment mFragmentToSet = null;@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem item) { // Handle navigation view item clicks here. switch (item.getItemId()) { case R.id.nav_home: mFragmentToSet = HomeFragment.newInstance(); break; } mDrawerLayout.closeDrawer(GravityCompat.START); return true;}mDrawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerSlide(View drawerView, float slideOffset) {} @Override public void onDrawerOpened(View drawerView) {} @Override public void onDrawerStateChanged(int newState) {} @Override public void onDrawerClosed(View drawerView) { //Set your new fragment here if (mFragmentToSet != null) { getSupportFragmentManager() .beginTransaction() .replace(FRAGMENT_CONTAINER_ID, mFragmentToSet) .commit(); mFragmentToSet = null; } } });


