首页 > 解决方案 > 片段可见性消失并在相应按钮单击时可见

问题描述

我有五个片段的视图寻呼机和底部导航栏,在调用第一个片段时试图隐藏其他片段。

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;

    }
}

在此处输入图像描述

背景你可以看到前面的片段来了,虽然点击的片段有蓝色背景

标签: androidandroid-fragments

解决方案


您需要做的就是:

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);
}

推荐阅读