Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OnBack Press Fragment showing blank Screen

I am using Fragments in my Application.So on the home page i have a grid view of 5 item on selection of which again i am opening a new fragment .

So what is happening is on back press it is showing a blank screen after that it is closing the application .

Please suggest me what i have done wrong in this.

MyCode

gridView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View v, int arg2,
                    long arg3) {
                if (DASHBOARD_LINKS[arg2].equals("A")) {
                    fragTran.replace(R.id.content_frame,
                                firstFrag);
                        fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
                        fragTran.addToBackStack(null);
                        fragTran.commit();

                }
                if (DASHBOARD_LINKS[arg2].equals("B")) {
                    fragTran.replace(R.id.content_frame, secondFrag);
                    fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
                    fragTran.addToBackStack(null);
                    fragTran.commit();
                }
                if (DASHBOARD_LINKS[arg2].equals("C")) {
                    fragTran.replace(R.id.content_frame, thirdFarg);
                    fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
                    fragTran.addToBackStack(null);
                    fragTran.commit();
                }
            }
        });

Please help my this is happening

like image 444
Pooja Dubey Avatar asked Mar 06 '14 10:03

Pooja Dubey


4 Answers

My suggestion for you is that let addToBackStack(null) in the fragment call.

But remove this line addToBackStack(null)

from the Homepage after which onbackpress you are getting the blank screen hope this will for you .

like image 169
Developer Avatar answered Oct 30 '22 12:10

Developer


Fragment showing blank solutions.

  1. Make sure to add first Base Fragment without addToBackStack() method. Because it is responsible for Navigation Back. We don't want to go back from first Page. So don't add it to backStack.
  2. While moving from Fragment A to Fragment B if you have call fragmentTransacation.add then while comming back from B to A. onViewCreated or onResume method will not called as you have added a fragment to it. So in order to hit onResume or onViewCreated while going back to Fragment A. you should call fragmentTransaction.replace
like image 30
Zar E Ahmer Avatar answered Oct 30 '22 10:10

Zar E Ahmer


@Override
public void onBackPressed() {
    int fragments = getSupportFragmentManager().getBackStackEntryCount();
    if (fragments == 1) {
        finish();
    } else {
        if (getFragmentManager().getBackStackEntryCount() > 1) {
            getFragmentManager().popBackStack();
        } else {
            super.onBackPressed();
        }
    }
}
like image 2
Pablo Cegarra Avatar answered Oct 30 '22 11:10

Pablo Cegarra


addToBackStack() <--dont include this for your first fragment.-->

if(getSupportFragmentManager().getBackStackEntryCount() !=1){
                fragmentTransaction.addToBackStack("placeholder");
            }
like image 1
Vishnu Kant Agarwal Avatar answered Oct 30 '22 10:10

Vishnu Kant Agarwal