List of usage examples for android.support.v4.app FragmentManager getBackStackEntryCount
public abstract int getBackStackEntryCount();
From source file:br.ufjf.app.ui.DrawerActivity.java
@Override public void onBackPressed() { // If the drawer is open, back will close it if (drawerLayout != null && drawerLayout.isDrawerOpen(GravityCompat.START)) { drawerLayout.closeDrawers();/* w w w . j a v a 2s .c o m*/ return; } // Otherwise, it may return to the anterior fragment stack FragmentManager fragmentManager = getSupportFragmentManager(); if (fragmentManager.getBackStackEntryCount() > 0) fragmentManager.popBackStack(); else // Lastly, it will rely on the system behavior for back super.onBackPressed(); }
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())); }// www . ja va 2s . co m 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:org.dmfs.android.microfragments.transitions.BackWithResultTransition.java
@Override public void prepare(@NonNull Context context, @NonNull FragmentManager fragmentManager, @NonNull MicroFragmentHost host, @NonNull MicroFragment<?> previousStep) { fragmentManager.popBackStackImmediate(); // make sure we also skip all skipable steps. if (fragmentManager.getBackStackEntryCount() > 0 && "skip".equals( fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1).getName())) { fragmentManager.popBackStackImmediate("skip", FragmentManager.POP_BACK_STACK_INCLUSIVE); }//from w w w. j a va 2 s . c o m }
From source file:org.gnucash.android.ui.transactions.TransactionsActivity.java
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(findViewById(android.R.id.content).getWindowToken(), 0); FragmentManager fm = getSupportFragmentManager(); if (fm.getBackStackEntryCount() > 0) { fm.popBackStack();//from w w w .jav a 2 s . c om } else { Intent accountsActivityIntent = new Intent(this, AccountsActivity.class); accountsActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); accountsActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(accountsActivityIntent); finish(); } return true; default: return false; } }
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 ww . j a va 2s .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:de.fahrgemeinschaft.BaseActivity.java
@Override public void onBackStackChanged() { FragmentManager fm = getSupportFragmentManager(); int backstack = fm.getBackStackEntryCount(); if (fm.getBackStackEntryCount() == 0) { setTitle(""); } else {/*from w w w .ja v a2s . c o m*/ setTitle(fm.getBackStackEntryAt(backstack - 1).getName()); } }
From source file:de.fahrgemeinschaft.BaseActivity.java
protected void showFragment(Fragment f, String name, int in, int out) { setTitle(name);/* w ww . j ava 2 s. com*/ FragmentManager fm = getSupportFragmentManager(); for (int i = fm.getBackStackEntryCount() - 1; i >= 0; i--) { if (fm.getBackStackEntryAt(i).getName().equals(name)) { for (int j = fm.getBackStackEntryCount() - 1; j > i; j--) { fm.popBackStackImmediate(); } return; } } fm.beginTransaction().setCustomAnimations(in, R.anim.do_nix, R.anim.do_nix, out) .add(R.id.container, f, name).addToBackStack(name).commit(); }
From source file:com.audiokernel.euphonyrmt.library.SimpleLibraryActivity.java
private void refreshTitleFromCurrentFragment() { final FragmentManager supportFM = getSupportFragmentManager(); final int fmStackCount = supportFM.getBackStackEntryCount(); if (fmStackCount > 0) { setTitle(supportFM.getBackStackEntryAt(fmStackCount - 1).getBreadCrumbTitle()); } else {/*from ww w . java 2s . c o m*/ final Fragment displayedFragment = getSupportFragmentManager().findFragmentById(R.id.root_frame); if (displayedFragment instanceof BrowseFragment) { setTitle(((BrowseFragment) displayedFragment).getTitle()); } else { setTitle(displayedFragment.toString()); } } }
From source file:org.openhab.habdroid.ui.AboutActivity.java
private void updateTitle() { FragmentManager fm = getSupportFragmentManager(); int count = fm.getBackStackEntryCount(); @StringRes/* ww w .j a v a 2s .c o m*/ int titleResId = count > 0 ? fm.getBackStackEntryAt(count - 1).getBreadCrumbTitleRes() : R.string.about_title; setTitle(titleResId); }
From source file:org.mariotaku.twidere.activity.support.DualPaneActivity.java
@Override public void onBackStackChanged() { if (!isDualPaneMode()) return;//www . ja v a 2 s. c o m 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(); }