Как перестать нажимать на тот же нижний элемент навигации? - PullRequest
1 голос
/ 28 октября 2019

У меня есть нижняя навигация с 4 пунктами меню.

Если пользователь находится во фрагменте домашней навигации и снова нажимает на элемент домашней навигации, фрагмент воссоздается.

Как отключить щелчок для текущего элемента меню навигации?

Вот мой код для навигации:

AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(R.id.navigation_home, R.id.navigation_feed, R.id.navigation_profile, R.id.trips_feed).build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
NavigationUI.setupWithNavController(navView, navController);

1 Ответ

0 голосов
/ 30 октября 2019

Вам нужно управлять этим с помощью регистра переключателя. Получите фрагмент, который теперь открыт, и скажите, если фрагмент открыт, никогда больше не открывайте.

Пример кода:

Фрагмент фрагмента = ноль;

    List<Fragment> fragments = getSupportFragmentManager().getFragments();

    for (Fragment currentFragment : fragments) {


        switch (item.getItemId()) {

            case R.id.navigation_home:
                if (!(currentFragment instanceof HomeFragmentGeneral)) {
                    fragment = HomeFragmentGeneral.newInstance();
                }
                break;


            case R.id.navigation_search:
                if (!(currentFragment instanceof NearlyFrag)) {
                    fragment = NearlyFrag.newInstance();
                }
                break;

            case R.id.navigation_profile:
                if (!(currentFragment instanceof ProfileFragment)) {
                    fragment = ProfileFragment.newInstance();
                }
                break;
        }
    }


    if (fragment != null) {
        attachFragmentToActivity(fragment, R.id.frame);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...