Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
507 views
in Technique[技术] by (71.8m points)

android - Reset/reload fragment container

How can I reset or reload a fragment container, to make it empty. I have a master detail view and I want to reset the detail container to empty on a menu item click.This works in some cases and does not in some.

 NullFragment fragment = new NullFragment();
 FragmentManager fragmentManager = getFragmentManager();
 FragmentTransaction fragmentTransaction = fragmentManager
        .beginTransaction();
 fragmentTransaction.replace(R.id.item_detail_container,
 fragment);
 int count = fragmentManager.getBackStackEntryCount();
 fragmentManager.popBackStackImmediate(count, 0);
 fragmentTransaction.commit();
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Usually you simply remove the fragment from it.

For example do something like

getFragmentManager().beginTransaction().remove(getFragmentManager().findFragmentById(R.id.your_container)).commit();

this will remove the fragment from the your_container holding it.

This gets the fragment currently present in your_container

getFragmentManager().findFragmentById(R.id.your_container)

and this remove the fragment

getFragmentManager().beginTransaction().remove(fragment).commit();

EDIT

Also sometimes it is useful to ensure all transactions are performed and finished, this can be done by using

getFragmentManager().executePendingTransactions();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...