Android: How to remove fragments from backstack? -


i have situation want clear fragments backstack except 1 visible(i.e. on top)

for example, there 4 fragments in backstack a->b->c->d (d on top)

now want remove fragments a,b,c backstack. constraint there should not visible effect on fragment d while removing history backstack.

this code.

fragmentmanager fm = getactivity().getsupportfragmentmanager();                 bundle bundle = new bundle();                 orderreceiptfragment orderreceiptfragment = new orderreceiptfragment();                 bundle.putserializable("orderhistory", orderhistory);                 orderreceiptfragment.setarguments(bundle);                 commonutil.clearbackstack(fm);                 fm.begintransaction().setcustomanimations(r.anim.enter_from_left,                         r.anim.exit_to_right)                         .replace(r.id.container, orderreceiptfragment).commit(); 

method clearbackstack

public static void clearbackstack(fragmentmanager fragmentmanager) {         fragmentmanager.popbackstack(0, fragmentmanager.pop_back_stack_inclusive); } 

here problem - while clearing backstack, milliseconds first fragment backstack gets visible. looks weird. have solution this?

you can

mehtod 1 :: removing 1 one

 fragmentmanager fm = getactivity().getsupportfragmentmanager();       (int = 0; < fm.getbackstackentrycount(); ++i) {       fm.popbackstack(); } 

mehthod 2

 fragmentmanager fm = getactivity().getsupportfragmentmanager(); fm .popbackstack(null, fragmentmanager.pop_back_stack_inclusive)  

refer

see answer. can find different methods

also refer popbackstackimmediate


Comments

Popular posts from this blog

database - VFP Grid + SQL server 2008 - grid not showing correctly -

jquery - Set jPicker field to empty value -

.htaccess - htaccess convert request to clean url and add slash at the end of the url -