下面列出了怎么用android.support.v4.app.FragmentTransaction的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Creates a new instance of {@code SlideDayTimePicker}.
*
* @param fm The {@code FragmentManager} from the calling activity that is used
* internally to show the {@code DialogFragment}.
*/
public SlideDayTimePicker(FragmentManager fm)
{
// See if there are any DialogFragments from the FragmentManager
FragmentTransaction ft = fm.beginTransaction();
Fragment prev = fm.findFragmentByTag(SlideDayTimeDialogFragment.TAG_SLIDE_DAY_TIME_DIALOG_FRAGMENT);
// Remove if found
if (prev != null)
{
ft.remove(prev);
ft.commit();
}
mFragmentManager = fm;
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
mDrawerLayout.closeDrawer(GravityCompat.START);
Fragment fragment = null;
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
switch (item.getItemId()) {
case R.id.home:
fragment = new HomeFragment();
break;
case R.id.menus:
fragment = new MenusFragment();
break;
case R.id.progress:
fragment = new ProgressFragment();
break;
}
ft.replace(R.id.fragment, fragment).commit();
return true;
}
/**
* View the photo album pictures
*/
public void gridListInfos() {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if(galleryFragment!=null){
fragmentTransaction.hide(galleryFragment);
}
if (gridFragment == null) {
gridFragment = AlbumGridFragment.newInstance();
fragmentTransaction.add(R.id.framelayout, gridFragment);
} else {
gridFragment.setData();
fragmentTransaction.show(gridFragment);
}
//java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
fragmentTransaction.commit();
}
public void onClickCategory(Category category) {
FragmentManager fragmentManager = ((AppCompatActivity) context).getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left);
Fragment fragment;
fragment = ((BaseActivity) context).mSupportFragmentManager.findFragmentByTag(AddCategoryFragment.class.getSimpleName());
if (fragment == null)
fragment = new AddCategoryFragment();
if (!fragment.isAdded()) {
Bundle bundle = new Bundle();
bundle.putSerializable("category", category);
bundle.putBoolean("edit", true);
fragment.setArguments(bundle);
Log.d("name", fragment.getClass().getSimpleName() + "");
fragmentTransaction.add(((CategoryActivity) context).binding.categoryFl.getId(), fragment, fragment.getClass().getSimpleName());
fragmentTransaction.addToBackStack(fragment.getClass().getSimpleName()).commit();
}
}
/**
* ����ˡ��ҵĿռ䡱��ť
*/
public static void clickHomeBtn() {
// ʵ����Fragmentҳ��
fragmentPage3 = new FragmentPage3();
// �õ�Fragment���������
FragmentTransaction fragmentTransaction = act
.getSupportFragmentManager().beginTransaction();
// �滻��ǰ��ҳ��
fragmentTransaction.replace(R.id.frame_content, fragmentPage3);
// ��������ύ
fragmentTransaction.commit();
friendfeedFl.setSelected(false);
friendfeedIv.setSelected(false);
myfeedFl.setSelected(false);
myfeedIv.setSelected(false);
homeFl.setSelected(true);
homeIv.setSelected(true);
moreFl.setSelected(false);
moreIv.setSelected(false);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = fragments.get(position);
if(!fragment.isAdded()){ // 如果fragment还没有added
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(fragment, "tab_" + position);
ft.commit();
/**
* 在用FragmentTransaction.commit()方法提交FragmentTransaction对象后
* 会在进程的主线程中,用异步的方式来执行。
* 如果想要立即执行这个等待中的操作,就要调用这个方法(只能在主线程中调用)。
* 要注意的是,所有的回调和相关的行为都会在这个调用中被执行完成,因此要仔细确认这个方法的调用位置。
*/
fragmentManager.executePendingTransactions();
}
if(fragment.getView().getParent() == null){
container.addView(fragment.getView()); // 为viewpager增加布局
}
return fragment.getView();
}
/**
* Switch to a specific Fragment with taking care of validation, Title and BackStack
*/
private Fragment switchToFragment(String fragmentName, Bundle args, boolean validate,
boolean addToBackStack, int titleResId, CharSequence title,
boolean withTransition) {
if (validate && !isValidFragment(fragmentName)) {
String message = "Invalid fragment for this activity: " + fragmentName;
throw new IllegalArgumentException(message);
}
Fragment f = Fragment.instantiate(this, fragmentName, args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(android.R.id.content, f);
if (withTransition && Device.hasKitKatApi())
TransitionManager.beginDelayedTransition(mContent);
if (addToBackStack) transaction.addToBackStack(SettingsActivity.BACK_STACK_PREFS);
if (titleResId > 0) {
transaction.setBreadCrumbTitle(titleResId);
} else if (title != null) {
transaction.setBreadCrumbTitle(title);
}
transaction.commitAllowingStateLoss();
getFragmentManager().executePendingTransactions();
return f;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// default view is volley
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(R.id.container, VolleyFragment.newInstance()).commit();
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = fragments.get(position);
if (!fragment.isAdded()) { // 如果fragment还没有added
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(fragment, "tab_" + position);
ft.commit();
/**
* 在用FragmentTransaction.commit()方法提交FragmentTransaction对象后
* 会在进程的主线程中,用异步的方式来执行。
* 如果想要立即执行这个等待中的操作,就要调用这个方法(只能在主线程中调用)。
* 要注意的是,所有的回调和相关的行为都会在这个调用中被执行完成,因此要仔细确认这个方法的调用位置。
*/
fragmentManager.executePendingTransactions();
}
if (fragment.getView().getParent() == null) {
container.addView(fragment.getView()); // 为viewpager增加布局
}
return fragment.getView();
}
public static void showFilterDialog(FragmentManager fm, boolean isMuzei) {
FragmentTransaction ft = fm.beginTransaction();
Fragment prev = fm.findFragmentByTag(TAG);
if (prev != null) {
ft.remove(prev);
}
ft.add(newInstance(isMuzei), TAG)
.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
try {
ft.commit();
} catch (IllegalStateException e) {
ft.commitAllowingStateLoss();
}
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
log("onCreate");
super.onCreate(savedInstanceState);
FragmentManager fm = getFragmentManager();
if (fm == null) return;
if (savedInstanceState != null) {
boolean isSupportHidden = savedInstanceState.getBoolean(STATE_SAVE_IS_HIDDEN);
FragmentTransaction ft = fm.beginTransaction();
if (isSupportHidden) {
ft.hide(this);
} else {
ft.show(this);
}
ft.commitAllowingStateLoss();
}
Bundle bundle = getArguments();
initData(bundle);
}
/**
*
* @param uid
*/
public void showResultDetail(final String testUUid)
{
FragmentTransaction ft;
final Fragment fragment = new RMBTTestResultDetailFragment();
final Bundle args = new Bundle();
args.putString(RMBTTestResultDetailFragment.ARG_UID, testUUid);
fragment.setArguments(args);
ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment, AppConstants.PAGE_TITLE_RESULT_DETAIL);
ft.addToBackStack(AppConstants.PAGE_TITLE_RESULT_DETAIL);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
refreshActionBar(AppConstants.PAGE_TITLE_RESULT_DETAIL);
}
public CommentsTimeLinePagerAdapter(CommentsTimeLineFragment fragment, ViewPager viewPager, FragmentManager fm,
SparseArray<Fragment> fragmentList) {
super(fm);
this.fragmentList = fragmentList;
fragmentList.append(CommentsTimeLineFragment.COMMENTS_TO_ME_CHILD_POSITION,
fragment.getCommentsToMeTimeLineFragment());
fragmentList.append(CommentsTimeLineFragment.COMMENTS_BY_ME_CHILD_POSITION,
fragment.getCommentsByMeTimeLineFragment());
FragmentTransaction transaction = fragment.getChildFragmentManager().beginTransaction();
if (!fragmentList.get(CommentsTimeLineFragment.COMMENTS_TO_ME_CHILD_POSITION).isAdded())
transaction.add(viewPager.getId(), fragmentList.get(CommentsTimeLineFragment.COMMENTS_TO_ME_CHILD_POSITION),
CommentsToMeTimeLineFragment.class.getName());
if (!fragmentList.get(CommentsTimeLineFragment.COMMENTS_BY_ME_CHILD_POSITION).isAdded())
transaction.add(viewPager.getId(), fragmentList.get(CommentsTimeLineFragment.COMMENTS_BY_ME_CHILD_POSITION),
CommentsByMeTimeLineFragment.class.getName());
if (!transaction.isEmpty()) {
transaction.commit();
fragment.getChildFragmentManager().executePendingTransactions();
}
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base_converter);
setupToolbar();
setTitle(R.string.tab_title_base);
BaseConverterFragment baseFragment
= (BaseConverterFragment) getSupportFragmentManager().findFragmentByTag(BaseConverterFragment.class.getName());
if (baseFragment == null) {
baseFragment = BaseConverterFragment.newInstance();
}
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content, baseFragment, BaseConverterFragment.class.getName());
fragmentTransaction.commit();
}
/**
* When the back off.
*/
private boolean onBackStackFragment() {
if (mFragmentStack.size() > 1) {
mFManager.popBackStack();
IBaseFragment inFragment = mFragmentStack.get(mFragmentStack.size() - 2);
FragmentTransaction fragmentTransaction = mFManager.beginTransaction();
fragmentTransaction.show(inFragment);
fragmentTransaction.commit();
IBaseFragment outFragment= mFragmentStack.get(mFragmentStack.size() - 1);
inFragment.onResume();
FragmentStackEntity stackEntity = (FragmentStackEntity) mFragmentEntityMap.get(outFragment);
mFragmentStack.remove(outFragment);
mFragmentEntityMap.remove(outFragment);
fragmentStack.remove(outFragment.getClass().getSimpleName());
if (stackEntity!=null&&stackEntity.requestCode != REQUEST_CODE_INVALID) {
inFragment.onFragmentResult(
stackEntity.requestCode,
stackEntity.resultCode,
stackEntity.result
);
}
return true;
}
return false;
}
public static void showInAppBillingDialog(@NonNull FragmentManager fm, @NonNull String key, @NonNull String[] productId) {
FragmentTransaction ft = fm.beginTransaction();
Fragment prev = fm.findFragmentByTag(TAG);
if (prev != null) {
ft.remove(prev);
}
ft.add(newInstance(key, productId), TAG)
.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
try {
ft.commit();
} catch (IllegalStateException e) {
ft.commitAllowingStateLoss();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String actorId = getIntent().getExtras().getString("actorId");
String actorName = getIntent().getExtras().getString("actorName");
mToolbarColor = getIntent().getExtras().getInt(IntentKeys.TOOLBAR_COLOR);
getSupportActionBar().setSubtitle(actorName);
Fragment frag = getSupportFragmentManager().findFragmentByTag(TAG);
if (frag == null && savedInstanceState == null) {
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content, ActorTvShowsFragment.newInstance(actorId), TAG);
ft.commit();
}
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
informaCam = InformaCam.getInstance();
if(PreferenceManager.getDefaultSharedPreferences(this).getBoolean("prefBlockScreenshots", false))
{
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
}
setContentView(R.layout.activity_wizard);
Fragment step1 = Fragment.instantiate(this, WizardSelectLanguage.class.getName());
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.wizard_holder, step1);
//ft.addToBackStack(null);
ft.commit();
checkForCrashes();
checkForUpdates();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
// Create new fragment to display a progress spinner while the data set for the
// RecyclerView is populated.
Fragment loadingScreenFragment = new LoadingScreenFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.fragment_container, loadingScreenFragment);
// Commit the transaction.
transaction.commit();
// Update the RecyclerView item's list with menu items.
addMenuItemsFromJson();
loadMenu();
}
}
@Override
public void onTabReselected(android.app.ActionBar.Tab tab, android.app.FragmentTransaction ft) {
if (mListener != null) {
FragmentTransaction trans = null;
if (mActivity instanceof FragmentActivity) {
trans = ((FragmentActivity)mActivity).getSupportFragmentManager().beginTransaction()
.disallowAddToBackStack();
}
mListener.onTabReselected(this, trans);
if (trans != null && !trans.isEmpty()) {
trans.commit();
}
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set theme
setTheme(R.style.Mizuu_Theme_NoBackground);
ViewUtils.setupWindowFlagsForStatusbarOverlay(getWindow(), true);
setTitle(null);
String actorId = getIntent().getExtras().getString("actorID");
Fragment frag = getSupportFragmentManager().findFragmentByTag(TAG);
if (frag == null && savedInstanceState == null) {
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(android.R.id.content, ActorDetailsFragment.newInstance(actorId), TAG);
ft.commit();
}
}
/**
* Creates a new instance of {@code SlideDateTimePicker}.
*
* @param fm The {@code FragmentManager} from the calling activity that is used
* internally to show the {@code DialogFragment}.
*/
public SlideDateTimePicker(FragmentManager fm)
{
// See if there are any DialogFragments from the FragmentManager
FragmentTransaction ft = fm.beginTransaction();
Fragment prev = fm.findFragmentByTag(SlideDateTimeDialogFragment.TAG_SLIDE_DATE_TIME_DIALOG_FRAGMENT);
// Remove if found
if (prev != null)
{
ft.remove(prev);
ft.commit();
}
mFragmentManager = fm;
}
/**
* 创建 fragment
*/
public void createFragments() {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
HomeFragment homeFragment = new HomeFragment();
fragmentList.add(homeFragment);
fragmentTransaction.add(R.id.fragment_container, homeFragment);
XianDuFragment xianDuFragment = new XianDuFragment();
fragmentList.add(xianDuFragment);
fragmentTransaction.add(R.id.fragment_container, xianDuFragment);
PicturesFragment picturesFragment = new PicturesFragment();
fragmentList.add(picturesFragment);
fragmentTransaction.add(R.id.fragment_container, picturesFragment);
MoreFragment moreFragment = new MoreFragment();
fragmentList.add(moreFragment);
fragmentTransaction.add(R.id.fragment_container, moreFragment);
fragmentTransaction.commit();
}
@Override
public void finish() {
super.finish();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
for (int id : mActualFragments.keySet()) {
Fragment fragment = fragmentManager.findFragmentByTag(id + "_key");
if (fragment != null) {
fragmentTransaction.remove(fragment);
}
}
fragmentTransaction.commitAllowingStateLoss();
if (mAdsFetcher != null) {
mAdsFetcher.cancel();
}
RootUtils.closeSU();
}
/**
* 创建 fragment
*/
public void createFragments() {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
HomeFragment homeFragment = new HomeFragment();
fragmentList.add(homeFragment);
fragmentTransaction.add(R.id.fragment_container, homeFragment);
ProjectFragment projectFragment = new ProjectFragment();
fragmentList.add(projectFragment);
fragmentTransaction.add(R.id.fragment_container, projectFragment);
HierarchyFragment hierarchyFragment = new HierarchyFragment();
fragmentList.add(hierarchyFragment);
fragmentTransaction.add(R.id.fragment_container, hierarchyFragment);
NavigationFragment navigationFragment = new NavigationFragment();
fragmentList.add(navigationFragment);
fragmentTransaction.add(R.id.fragment_container, navigationFragment);
MineFragment mineFragment = new MineFragment();
fragmentList.add(mineFragment);
fragmentTransaction.add(R.id.fragment_container, mineFragment);
fragmentTransaction.commit();
}
@Override
public void reply(Site site, String id, String presetText, boolean report) {
if (Settings.getGuideTypeSend()) {
showSwipeGuide();
}
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(TAG_FRAGMENT_TYPE_SEND);
if (fragment == null && !TextUtils.isEmpty(id)) {
Bundle args = new Bundle();
args.putString(TypeSendFragment.KEY_ACTION,
report ? TypeSendFragment.ACTION_REPORT : TypeSendFragment.ACTION_REPLY);
args.putInt(TypeSendFragment.KEY_SITE, site.getId());
args.putString(TypeSendFragment.KEY_ID, id);
args.putString(TypeSendFragment.KEY_TEXT, presetText);
TypeSendFragment typeSendFragment = new TypeSendFragment();
typeSendFragment.setArguments(args);
typeSendFragment.setFragmentHost(this);
typeSendFragment.setCallback(this);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fragment_translate_in, R.anim.fragment_translate_out);
transaction.add(R.id.fragment_container, typeSendFragment, TAG_FRAGMENT_TYPE_SEND);
transaction.commitAllowingStateLoss();
getSwipeBackLayout().setSwipeEnabled(false);
}
}
private void initFragment() {
mFragments.put(NewsFragment.TAG, NewsFragment.newInstance());
mFragments.put(JokeFragment.TAG, JokeFragment.newInstance());
mFragments.put(VideoFragment.TAG, VideoFragment.newInstance());
mFragments.put(MeiziFragment.TAG, MeiziFragment.newInstance());
// init first fragment
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction().add(R.id.content, mFragments.get(NewsFragment.TAG), NewsFragment.TAG);
transaction.show(mFragments.get(NewsFragment.TAG)).commit();
getBinding().navigationView.setCheckedItem(R.id.nav_news);
mCurrFragmentTag = NewsFragment.TAG;
}
private void enterFragment1(Conversation.ConversationType mConversationType, String mTargetId) {
ConversationFragment fragment = new ConversationFragment();
Uri uri = Uri.parse("rong://" + getApplicationInfo().packageName).buildUpon()
.appendPath("conversation").appendPath(mConversationType.getName().toLowerCase())
.appendQueryParameter("targetId", mTargetId).build();
fragment.setUri(uri);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.temp1, fragment);
transaction.commit();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
RecyclerViewFragment fragment = new RecyclerViewFragment();
transaction.replace(R.id.sample_content_fragment, fragment);
transaction.commit();
}
}
public static void display(FragmentManager fm) {
FragmentTransaction ft = fm.beginTransaction();
Fragment prev = fm.findFragmentByTag(TAG);
if (prev != null) {
ft.remove(prev);
}
AboutFragment.newInstance().show(ft, TAG);
}