FilipLuch FilipLuch - 5 months ago 156
Android Question

In Fragment on back button pressed Activity is blank

I have an Activity and many fragments inflated in same

FrameLayout


<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />


example: mainActivity > any fragment (press back button) > activity is blank.

In onCreate:

layout = (FrameLayout)findViewById(R.id.content_frame);
layout.setVisibility(View.GONE);


When I start a fragment:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, profileFragment);
ft.addToBackStack(null);
ft.commit();
layout.setVisibility(View.VISIBLE);


I suppose I need to make the frameLayout's visibility
GONE
again on back pressed, but how do I do this?




I tried
onBackPressed
and set
layout.setVisibility(View.GONE);
but I cannot go back through fragments, as I go directly to main page.

Answer

If you have more than one fragment been used in the activity or even if you have only one fragment then the first fragment should not have addToBackStack defined. Since this allows back navigation and prior to this fragment the empty activity layout will be displayed.

 // fragmentmaganer.addToBackStack() // dont include this for your first fragment.

But for the other fragment you need to have this defined otherwise the back will not navigate to earlier screen (fragment) instead the application might shutdown.

Comments