List of usage examples for android.support.v4.app FragmentManager getBackStackEntryAt
public abstract BackStackEntry getBackStackEntryAt(int index);
From source file:org.mariotaku.twidere.activity.support.DualPaneActivity.java
@Override public void onBackStackChanged() { if (!isDualPaneMode()) return;/*w w w. ja va 2 s . c om*/ final FragmentManager fm = getSupportFragmentManager(); final int count = fm.getBackStackEntryCount(); final Fragment leftPaneFragment = fm.findFragmentById(PANE_LEFT); final Fragment rightPaneFragment = fm.findFragmentById(PANE_RIGHT); final boolean leftPaneUsed = leftPaneFragment != null && leftPaneFragment.isAdded(); final boolean rightPaneUsed = rightPaneFragment != null && rightPaneFragment.isAdded(); if (count > 0) { final BackStackEntry entry = fm.getBackStackEntryAt(count - 1); if (entry == null) return; final Fragment fragment = BackStackEntryTrojan.getFragmentInBackStackRecord(entry); if (fragment instanceof Panes.Right) { showRightPane(); } else if (fragment instanceof Panes.Left) { showLeftPane(); } } else { if (fm.findFragmentById(getMainViewId()) != null || leftPaneUsed) { showLeftPane(); } else if (rightPaneUsed) { showRightPane(); } } updateMainViewVisibility(); }
From source file:siarhei.luskanau.gps.tracker.free.ui.app.AppController.java
private void logDebug() { Log.d(TAG, "###########################"); FragmentManager fragmentManager = activity.getSupportFragmentManager(); List<Fragment> fragments = fragmentManager.getFragments(); if (fragments != null) { for (Fragment fragment : fragments) { if (fragment != null) { Log.d(TAG, "FragmentManager.getFragments: " + fragment.getTag() + ": " + fragment.getClass().getSimpleName()); } else { Log.d(TAG, "FragmentManager.getFragments: null"); }/*from w w w. j a v a2 s.c o m*/ } } for (int i = 0; i < fragmentManager.getBackStackEntryCount(); i++) { FragmentManager.BackStackEntry backStackEntry = fragmentManager.getBackStackEntryAt(i); Log.d(TAG, "FragmentManager.getBackStackEntryAt: " + i + ": " + backStackEntry.getName()); } }
From source file:org.mariotaku.twidere.activity.DualPaneActivity.java
@Override public void onBackStackChanged() { if (isDualPaneMode()) { final FragmentManager fm = getSupportFragmentManager(); final int count = fm.getBackStackEntryCount(); final Fragment left_pane_fragment = fm.findFragmentById(PANE_LEFT); final Fragment right_pane_fragment = fm.findFragmentById(PANE_RIGHT); final View main_view = findViewById(R.id.main); final boolean left_pane_used = left_pane_fragment != null && left_pane_fragment.isAdded(); final boolean right_pane_used = right_pane_fragment != null && right_pane_fragment.isAdded(); if (count > 0) { final BackStackEntry entry = fm.getBackStackEntryAt(count - 1); if (entry == null) return; final Fragment fragment = BackStackEntryTrojan.getFragmentInBackStackRecord(entry); if (fragment instanceof Panes.Right) { showRightPane();/*from ww w. j a va2 s . c om*/ } else if (fragment instanceof Panes.Left) { showLeftPane(); } } else { if (fm.findFragmentById(R.id.main) != null || left_pane_used) { showLeftPane(); } else if (right_pane_used) { showRightPane(); } } if (main_view != null) { main_view.setVisibility(left_pane_used ? View.GONE : View.VISIBLE); } } }
From source file:com.vinexs.eeb.BaseActivity.java
public void addFragment(int viewId, Fragment fragment) { if (fragment.isAdded()) { return;/*from ww w . ja va2 s.c om*/ } FragmentManager fragMgr = getSupportFragmentManager(); FragmentTransaction transaction = fragMgr.beginTransaction(); BackStackEntry lastEntry = fragMgr.getBackStackEntryCount() == 0 ? null : fragMgr.getBackStackEntryAt(fragMgr.getBackStackEntryCount() - 1); // Transaction options String fragName = fragment.getClass().getSimpleName(); String breadCrumbTitle; String breadCrumbShortTitle; Boolean addToBackStack = false; int animationEnter = 0; int animationExit = 0; // Fill options Bundle args = fragment.getArguments(); if (args != null) { if (args.containsKey("animationEnter") && args.containsKey("animationExit")) { animationEnter = args.getInt("animationEnter"); animationExit = args.getInt("animationExit"); } if (args.containsKey("breadCrumbTitle")) { breadCrumbTitle = args.getString("breadCrumbTitle"); } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(this); } if (args.containsKey("breadCrumbShortTitle")) { breadCrumbShortTitle = args.getString("breadCrumbShortTitle"); } else { breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(this); } if (args.containsKey("fragmentName")) { fragName = args.getString("fragmentName"); } if (args.containsKey("addToBackStack")) { addToBackStack = args.getBoolean("addToBackStack"); } } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(this); breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(this); } // Set option to fragment manager if (animationEnter != 0 && animationExit != 0) { transaction.setCustomAnimations(animationEnter, animationExit); } if (breadCrumbTitle != null && !breadCrumbTitle.isEmpty()) { transaction.setBreadCrumbTitle(breadCrumbTitle); } if (breadCrumbShortTitle != null && !breadCrumbShortTitle.isEmpty()) { transaction.setBreadCrumbShortTitle(breadCrumbShortTitle); } if (transaction.isAddToBackStackAllowed() && addToBackStack) { transaction.addToBackStack(fragName); } // Add fragment transaction.add(viewId, fragment, fragName).commitAllowingStateLoss(); }
From source file:com.vinexs.eeb.BaseActivity.java
public void replaceFragment(int viewId, Fragment fragment) { if (fragment.isAdded()) { return;//from w ww .j a va2 s . co m } FragmentManager fragMgr = getSupportFragmentManager(); FragmentTransaction transaction = fragMgr.beginTransaction(); BackStackEntry lastEntry = fragMgr.getBackStackEntryCount() == 0 ? null : fragMgr.getBackStackEntryAt(fragMgr.getBackStackEntryCount() - 1); // Transaction options String fragName = fragment.getClass().getSimpleName(); String breadCrumbTitle; String breadCrumbShortTitle; Boolean addToBackStack = true; int animationEnter = 0; int animationExit = 0; // Fill options Bundle args = fragment.getArguments(); if (args != null) { if (args.containsKey("animationEnter") && args.containsKey("animationExit")) { animationEnter = args.getInt("animationEnter"); animationExit = args.getInt("animationExit"); } if (args.containsKey("breadCrumbTitle")) { breadCrumbTitle = args.getString("breadCrumbTitle"); } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(this); } if (args.containsKey("breadCrumbShortTitle")) { breadCrumbShortTitle = args.getString("breadCrumbShortTitle"); } else { breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(this); } if (args.containsKey("fragmentName")) { fragName = args.getString("fragmentName"); } if (args.containsKey("addToBackStack")) { addToBackStack = args.getBoolean("addToBackStack"); } } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(this); breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(this); } // Set option to fragment manager if (animationEnter != 0 && animationExit != 0) { transaction.setCustomAnimations(animationEnter, animationExit); } if (breadCrumbTitle != null && !breadCrumbTitle.isEmpty()) { transaction.setBreadCrumbTitle(breadCrumbTitle); } if (breadCrumbShortTitle != null && !breadCrumbShortTitle.isEmpty()) { transaction.setBreadCrumbShortTitle(breadCrumbShortTitle); } if (transaction.isAddToBackStackAllowed() && addToBackStack) { transaction.addToBackStack(fragName); } // Replace fragment transaction.replace(viewId, fragment, fragName).commitAllowingStateLoss(); }
From source file:com.afayear.android.client.activity.DualPaneActivity.java
@Override public void onBackStackChanged() { if (isDualPaneMode()) { final FragmentManager fm = getSupportFragmentManager(); final int count = fm.getBackStackEntryCount(); final Fragment left_pane_fragment = fm.findFragmentById(PANE_LEFT); final Fragment right_pane_fragment = fm.findFragmentById(PANE_RIGHT); final View main_view = findViewById(R.id.main); final boolean left_pane_used = left_pane_fragment != null && left_pane_fragment.isAdded(); final boolean right_pane_used = right_pane_fragment != null && right_pane_fragment.isAdded(); if (count > 0) { final BackStackEntry entry = fm.getBackStackEntryAt(count - 1); if (entry == null) return; final Fragment fragment = BackStackEntryTrojan.getFragmentInBackStackRecord(entry); if (fragment instanceof Panes.Right) { showRightPane();/*from w w w .j a va 2 s . c o m*/ } else if (fragment instanceof Panes.Left) { showLeftPane(); } } else { if (fm.findFragmentById(R.id.main) != null || left_pane_used) { showLeftPane(); } else if (right_pane_used) { showRightPane(); } } if (main_view != null) { final int visibility = left_pane_used ? View.GONE : View.VISIBLE; // Visibility changed, so start animation. if (main_view.getVisibility() != visibility) { final Animation anim = AnimationUtils.loadAnimation(this, left_pane_used ? android.R.anim.fade_out : android.R.anim.fade_in); main_view.startAnimation(anim); } main_view.setVisibility(visibility); } } }
From source file:com.vinexs.eeb.BaseActivity.java
/** * Require setDefaultBackStackListener() ran in onCreate *///from w w w . java 2s.c o m protected void BackStackSyncStatus() { try { FragmentManager fragMgr = getSupportFragmentManager(); int count = fragMgr.getBackStackEntryCount(); if (count - 1 >= 0) { Log.d("TEST", "BackStackSyncStatus::(count - 1 >= 0) == true"); BackStackEntry entry = fragMgr.getBackStackEntryAt(count - 1); String title = (String) entry.getBreadCrumbTitle(); if (getSupportActionBar() != null) { setBackStackTitle(title); getSupportActionBar().setHomeButtonEnabled(true); if (!hasLeftDrawer && !hasRightDrawer) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } } if (drawerLayout != null) { drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.START); drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END); } if (drawerToggle != null) { drawerToggle.setDrawerIndicatorEnabled(false); } onBaseBackStackChanged(false, count); } else { if (getSupportActionBar() != null) { setBackStackTitle(Utility.getAppName(this)); getSupportActionBar().setHomeButtonEnabled(false); if (!hasLeftDrawer && !hasRightDrawer) { getSupportActionBar().setDisplayHomeAsUpEnabled(false); } } if (hasLeftDrawer) { drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.START); if (drawerToggle != null) { drawerToggle.setDrawerIndicatorEnabled(true); } } if (hasRightDrawer) { drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END); } onBaseBackStackChanged(true, count); } if (drawerToggle != null) { drawerToggle.syncState(); } } catch (Exception e) { e.printStackTrace(); } }
From source file:com.doplgangr.secrecy.views.MainActivity.java
void addFragment(final Fragment fragment, int transition1, int transition2) { if (mFragmentNameList.contains(fragment.getClass())) { mNavigation.setSelectedItem(mFragmentNameList.indexOf(fragment.getClass())); }/* w w w.ja v a 2s .c om*/ String tag = fragment.getClass().getName(); FragmentManager manager = getSupportFragmentManager(); if (manager.getBackStackEntryCount() >= 1) { String activeFragmentTag = getSupportFragmentManager() .getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 1).getName(); Fragment activeFragment = getSupportFragmentManager().findFragmentByTag(activeFragmentTag); // Don't switch fragment if already active if (activeFragment.getClass().equals(fragment.getClass())) { return; } //clear all except lowest FragmentManager.BackStackEntry first = manager.getBackStackEntryAt(0); manager.popBackStackImmediate(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE); } FragmentTransaction transaction = fragmentManager.beginTransaction() .setCustomAnimations(transition1, transition2).replace(R.id.content_frame, fragment, tag); if (fragment.getClass() != VaultsListFragment.class) { transaction = transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).addToBackStack(tag); } transaction.commit(); }
From source file:com.androzic.MainActivity.java
@Override public void addFragment(Fragment fragment, String tag) { FragmentManager fm = getSupportFragmentManager(); // Get topmost fragment Fragment parent;// www.jav a2s. c o m if (fm.getBackStackEntryCount() > 0) { FragmentManager.BackStackEntry bse = fm.getBackStackEntryAt(fm.getBackStackEntryCount() - 1); parent = fm.findFragmentByTag(bse.getName()); } else { parent = fm.findFragmentById(R.id.content_frame); } FragmentTransaction ft = fm.beginTransaction(); // Detach parent ft.detach(parent); // Add new fragment to back stack ft.add(R.id.content_frame, fragment, tag); ft.addToBackStack(tag); ft.commit(); }
From source file:cn.edu.zafu.corepage.base.BaseActivity.java
/** * ?fragmnet/*from w w w . jav a2 s .c o m*/ * * @return ?Fragment */ public BaseFragment getActiveFragment() { if (this.isFinishing()) { return null; } FragmentManager manager = this.getSupportFragmentManager(); if (manager != null) { int count = manager.getBackStackEntryCount(); if (count > 0) { String tag = manager.getBackStackEntryAt(count - 1).getName(); return (BaseFragment) manager.findFragmentByTag(tag); } } return null; }