видимость фрагментов исчезла и видна при нажатии соответствующей кнопки - PullRequest
0 голосов
/ 10 октября 2019

У меня есть видовой пейджер и нижняя панель навигации с пятью фрагментами, я пытался скрыть другие фрагменты при вызове первого фрагмента.

FragmentManager fm = getSupportFragmentManager();

FragmentTransaction ft = fm.beginTransaction();

protected void selectFragment(MenuItem item) {
    item.setChecked(true);


    switch (item.getItemId()) {
        case R.id.action_home:
            displayFragment(DefaultFragment.class);
            ft.hide(FavouriteFragment.class);//need help here
            break;
        case R.id.action_info:
            displayFragment(FavouriteFragment.class);
            break;
        case R.id.action_msg:
            displayFragment(NotifyFragment.class);
            break;
        case R.id.action_profile:
            displayFragment(ProfileFragment.class);
            break;
        case R.id.action_history:
            displayFragment(OrderHistoryFragment.class);
            break;

    }
}

enter image description here

фон, вы можете видеть, что идут предыдущие фрагменты, хотя выделенный фрагмент имеет синий цвет

1 Ответ

1 голос
/ 10 октября 2019

Все, что вам нужно сделать, это:

switch (item.getItemId()) {
        case R.id.action_home:
            Fragment fragment = new DefaultFragment();
            loadFragment(fragment);
            break;
        case R.id.action_info:
            Fragment fragment = new FavouriteFragment();
            loadFragment(fragment);
            break;
        case R.id.action_msg:
            Fragment fragment = new NotifyFragment();
            loadFragment(fragment);
            break;
        case R.id.action_profile:
            Fragment fragment = new ProfileFragment();
            loadFragment(fragment);
            break;
        case R.id.action_history:
            Fragment fragment = new OrderHistoryFragment();
            loadFragment(fragment);
            break;

    }

private void loadFragment(Fragment fragment)
{
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.content_login_activity, fragment);
    ft.commitAllowingStateLoss();
    this.getSupportFragmentManager().popBackStackImmediate(null, 
    FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...