Fragment addToBackStack() and popBackStackImmediate() not working

前端 未结 6 2021
清酒与你
清酒与你 2020-12-08 20:00

I am currently building an application for Android (14 <= SDK <= 21) by using one ActionBarActivity and more Fragments, such as ListFra

6条回答
  •  情歌与酒
    2020-12-08 20:22

    For those, who are still looking for solution.

    In the main Activity class (which is hosting the fragments)just override onBackPressed().

    @Override
    public void onBackPressed() {
        if (getFragmentManager().getBackStackEntryCount() > 0 ){
            getFragmentManager().popBackStack();
        } else {
            super.onBackPressed();
        }
    }
    

    There is no onBackPressed() method in fragment, and this method is just for the activity. So,when we press the back key, the default behaviour of activity is shown, which is

    you will either go to previous activity(if there is any) or the app will exit.

    Now we need to override this method to tell the activity that when we press the back key, if there are any fragments in back stack, pop them out (and this is when the addToBackStack() comes into picture). Otherwise follow the default behaviour.

提交回复
热议问题