Ящик навигации немного отстает при открытии и закрытии с фрагментом - PullRequest
0 голосов
/ 15 октября 2018

У меня есть 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;
}
...