У меня есть Navigation Drawer
, который дает возможность выбирать между двумя фрагментами и двумя обычными действиями.У Drawer также есть заголовок с ImageView
и TextView
(но я думаю, что это не проблема, потому что он отстает даже без mipmap).
Дело в том, что при каждом скольжении он запаздывает (при открытии и закрытии).Где проблема?Я проверил другие вопросы здесь на StackOverflow, и это то, что я получил, без результатов.
В onCreate
основной деятельности:
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolb, R.string.drawer_open, R.string.drawer_close) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
Log.v("bbbb","Drawer closed");
if(frgmOrNot) {
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, mFragmentToSet, "MAIN_FRAG").commit();
mFragmentToSet = null;
frgmOrNot=false;
}
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
invalidateOptionsMenu();
f = (MainFragment)getSupportFragmentManager().findFragmentByTag("MAIN_FRAG");
if(f.getActionMode())
f.getAct().finish();
}
};
mDrawerToggle.syncState();
mDrawerLayout.addDrawerListener(mDrawerToggle);
Выбранный пункт:
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch(item.getItemId()){
case R.id.nav_available:
frgmOrNot = true;
mFragmentToSet = MainFragment.newInstance(0);
break;
case R.id.nav_download:
frgmOrNot = true;
mFragmentToSet = MainFragment.newInstance(1);
break;
case R.id.nav_upload:
frgmOrNot = false;
Intent j = new Intent(this,UploadActivity.class);
startActivity(j);
break;
case R.id.nav_about:
frgmOrNot = false;
Intent i = new Intent(this,AboutActivity.class);
startActivity(i);
break;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
if(frgmOrNot)
return true; //just to show the correct item selection
else
return false;
}