Фрагменты отображаются друг на друге. Может быть, я сделал что-то не так с ViewpagerAdapter y fragment контейнер

Проблема у меня в том, что фрагменты были отображены друг на другe. Я создал HomeBNVFragment выступать в качестве контейнера для трех вкладок и их соответствующих фрагментов, которые у меня есть в TabLayout (Home, World и Messages). Но почему-то они показаны за HomeBNVFragment у меня в моем BottomNavigationView.

Я даже не знаю, как это возможно, так как это "контейнер", так что в теории он должен отображать информацию о любой вкладке, которая находится внутри него в это конкретное время ... Может быть, кто-то может сказать мне, где ошибка в моем коде?

Ниже у вас есть моя MainActivity, HomeBNVFragment и HomeTabLayoutФрагмент.

MainActivity.java

private BottomNavigationView.OnNavigationItemSelectedListener navigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
            switch (menuItem.getItemId()) {
                case R.id.nav_home:
                    mSelectedFragment = new HomeBNVFragment();
                    break;
                case R.id.nav_search:
                    mSelectedFragment = new SearchFragment();
                    break;
                case R.id.nav_notifications:
                    mSelectedFragment = new NotificationsFragment();
                    break;
                case R.id.nav_profile:
                    SharedPreferences.Editor editor = getSharedPreferences("PREFS", MODE_PRIVATE).edit();
                    editor.putString("profileid", FirebaseAuth.getInstance().getCurrentUser().getUid());
                    editor.apply();
                    mSelectedFragment = new ProfileFragment();
                    break;
                case R.id.nav_save:
                    mSelectedFragment = new SaveFragment();
                    break;
            }

            if (mSelectedFragment != null) {
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, mSelectedFragment).commit();
            }

            return true;
        }
    };

HomeBNVFragment (контейнер)

public class HomeBNVFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_home_bnv, container, false);

        setFragment(new HomeTabLayoutFragment());

        return v;
    }

    private void setFragment(Fragment fragment) {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.replace(R.id.fragment_container, fragment);
        ft.commit();
    }
}

HomeTabLayoutFragment (

public class HomeTabLayoutFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_home_tab_layout, container, false);

        RecyclerView recyclerView = v.findViewById(R.id.recycler_view);
        recyclerView.setHasFixedSize(true);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
        linearLayoutManager.setReverseLayout(true);
        linearLayoutManager.setStackFromEnd(true);
        recyclerView.setLayoutManager(linearLayoutManager);
        mPostLists = new ArrayList<>();
        mPostAdapter = new PostAdapter(getContext(), mPostLists);
        recyclerView.setAdapter(mPostAdapter);

        TabLayout tabLayout = v.findViewById(R.id.tab_layout);
        final ViewPager viewPager = v.findViewById(R.id.viewpager);

        if (getFragmentManager() != null) {
            ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getFragmentManager());
            viewPagerAdapter.addFragment(new HomeTabLayoutFragment(), "Home");
            viewPagerAdapter.addFragment(new WorldFragment(), "World");
            viewPagerAdapter.addFragment(new MessagesFragment(), "Messages");

            viewPager.setAdapter(viewPagerAdapter);
            tabLayout.setupWithViewPager(viewPager);
        }

        return v;
    }

    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);

        if (context instanceof Activity) {
            mActivity = (Activity) context;
        }
    }

    static class ViewPagerAdapter extends FragmentPagerAdapter {

        private ArrayList<Fragment> mFragments;
        private ArrayList<String> mTitles;

        ViewPagerAdapter(@NonNull FragmentManager fm) {
            super(fm);
            this.mFragments = new ArrayList<>();
            this.mTitles = new ArrayList<>();
        }

        @NonNull
        @Override
        public Fragment getItem(int position) {
            return mFragments.get(position);
        }

        @Override
        public int getCount() {
            return mFragments.size();
        }

        void addFragment(Fragment fragment, String title) {
            mFragments.add(fragment);
            mTitles.add(title);
        }

        @Nullable
        @Override
        public CharSequence getPageTitle(int position) {
            return mTitles.get(position);
        }
    }
}

Ответы (0 шт):