How to remove a fragment of a substituted fragment upon transition of a fragment?

I did a fragment NavigationDrawer, which has elements of both Home, Settings, Feedbackand more. HomeWhen you click on the house, the item should open, where home is the start page that opens when the application starts.

The process of opening the onclick pages of the element that I use is that I replace it layoutwith another fragment using this code fragment

 if (fragment != null) {
                FragmentManager fragmentManager = getFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.relative, fragment).commit();
                menuList.setItemChecked(position, true);
                menuList.setSelection(position);
                getActivity().setTitle(ittems[position]);

Well, everything works fine when I try to click a button Home, how can I go to the start / start page?

What I did by clicking on Homean element, I initialize intentand start activity, but I don’t like it activity, and when you cause activity, it closes the box suddenly, unlike smoothly closing the box using the replacement process, which I used for all other items, also when it returns, it seems that the application has been restarted.

So, I want to know if there is a way to return to the start page or cancel the fragment replacement replacement layout?

updated with codes

 menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Fragment fragment = null;
            switch (position) {

                case 0:Intent intent = new Intent(getActivity(), MainActivity.class);
                   intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                    getActivity().overridePendingTransition(0, 0);
                    startActivity(intent);
                    break;
                case 1:
                    Bundle overview = new Bundle();
                    overview.putInt("overview", finalPage);
                    overview.putInt("month", tm+1);
                    overview.putInt("year", ty);
                    fragment = new OverviewFragment();
                    fragment.setArguments(overview);
                    break;
                case 2:
                    fragment = new StatisticsFragment();
                    break;
                case 3:
                    fragment= new SomeFragment();
                    break;
                case 4:
                    fragment = new SettingsFragment();
                    break;
                case 5:fragment= new FeedbackFragment();
                    break;
            }
            if (fragment != null) {
                FragmentManager fragmentManager = getFragmentManager();
                fragmentManager.beginTransaction()
                        .replace(R.id.relative, fragment).commit();
                menuList.setItemChecked(position, true);
                menuList.setSelection(position);
                getActivity().setTitle(ittems[position]);
            }
            mDrawerLayout.closeDrawer(Gravity.START);
        }
    });

solvable

After a hard day of research, I got a solution to this problem .. I post it here if someone is looking for it

Here is what i did

        menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Fragment fragment = null;
            FragmentTransaction fragmentManager = getFragmentManager().beginTransaction();
            FragmentManager fragmentManager1= getFragmentManager();
            switch (position) {

                case 0:
                    while (fragmentManager1.getBackStackEntryCount()!=0){
                        fragmentManager1.popBackStackImmediate();
                    }
                    break;
                case 1:
                    Bundle overview = new Bundle();
                    overview.putInt("overview", finalPage);
                    overview.putInt("month", tm+1);
                    overview.putInt("year", ty);
                    fragment = new OverviewFragment();
                    fragment.setArguments(overview);
                    break;
                case 2:
                    fragment = new StatisticsFragment();
                    break;
                case 3:
                    fragment= new SomeFragment();
                    break;
                case 4:
                    fragment = new SettingsFragment();
                    break;
                case 5:fragment= new FeedbackFragment();
                    break;
            }
            if (fragment != null) {
                fragmentManager.addToBackStack("back");
                fragmentManager
                        .replace(R.id.relative, fragment).commit();
                menuList.setItemChecked(position, true);
                menuList.setSelection(position);
                getActivity().setTitle(ittems[position]);
            }
            mDrawerLayout.closeDrawer(Gravity.START);
        }
    });

The concept I tried here, I place all the fragments in the backstack and when I click on an element HomeI clear the full backstack

+4
1

"" "" @override onBackPressed(). , :)

FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
<CurrentFragmane> fragment = (<CurrentFragmane>) getFragmentManager()
.findFragmentByTag("<CurrentFragmane>");
fragmentTransaction.remove(fragment);
fragmentTransaction.commit();
getFragmentManager().popBackStack();
0

All Articles