NavigationDrawer с BottomNavigation в Android - PullRequest
0 голосов
/ 20 июня 2019

Я использую Навигационный ящик и Нижнюю навигацию одновременно, для этого у меня есть одна проблема: я создаю фрагмент под названием «Домашний фрагмент» и при создании ящика навигации. Я вызываю этот фрагмент, тогда все остальные фрагменты возвращаются назад. кнопка. В нижней части навигации у меня есть меню Home, когда я нажимаю на него, он открывает фрагмент со стрелкой назад, и я хочу открыть его с помощью меню ящика, так как мне это сделать?

Код навигационного ящика при создании ::

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navigation_drawer);

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        fragment =  getSupportFragmentManager().findFragmentById(R.id.baseframe);
        final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        // toolbar.setNavigationIcon(R.drawable.ic_menu_black_24dp);
        toggle.syncState();

        navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

        navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
        getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
            @Override
            public void onBackStackChanged() {

                Log.d(TAG, "Fragment back-stack count : " + getSupportFragmentManager().getBackStackEntryCount());

                if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
                    getSupportActionBar().setDisplayHomeAsUpEnabled(true); // show back button

                    @SuppressLint("PrivateResource") final Drawable upArrow = getResources().getDrawable(R.drawable.ic_arrow_back_black_24dp);
                    upArrow.setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);
                    getSupportActionBar().setHomeAsUpIndicator(upArrow);


                    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            onBackPressed();
                        }
                    });
                } else {

                    getSupportActionBar().setDisplayHomeAsUpEnabled(false);

                    toggle.syncState();
                    navigationView.getMenu().getItem(0).setChecked(true);
                    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            drawer.openDrawer(GravityCompat.START);
                        }
                    });

                    if (!(fragment instanceof Homefragement)) {
                        getSupportFragmentManager().beginTransaction().replace(R.id.baseframe, Homefragement.newInstance(null)).commit();
                        navigationView.getMenu().getItem(0).setChecked(true);
                    }

                }


                if (fragment instanceof Homefragement) {
                    drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
                } else {
                    drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
                }

            }
        });
        invalidateOptionsMenu();
        getSupportFragmentManager().beginTransaction().replace(R.id.baseframe, Homefragement.newInstance(null)).commit();
        navigationView.getMenu().getItem(0).setChecked(true);

                }
 private boolean sendBackToHome = false;
    @Override
    public void onBackPressed() {
    if(!sendBackToHome) {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawers();
        } else {
            super.onBackPressed();
        }
    } else {
        getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        getSupportFragmentManager().beginTransaction().replace(R.id.baseframe, Homefragement.newInstance(null)).commit();

    }
    }

и для нижней навигации ::

case R.id.navigation_home:
           menuItem.setChecked(true);
              fm = getSupportFragmentManager();
                     getSupportFragmentManager().beginTransaction().replace(R.id.baseframe, Homefragement.newInstance(null)).commit();
               return true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...