List of usage examples for android.support.v4.app FragmentManager popBackStackImmediate
public abstract boolean popBackStackImmediate(int id, int flags);
From source file:li.barter.activities.AbstractBarterLiActivity.java
/** * Helper method to load fragments into layout * * @param containerResId The container resource Id in the content view into which to load the * fragment//from w ww .j av a 2s . c o m * @param fragment The fragment to load * @param tag The fragment tag * @param addToBackStack Whether the transaction should be addded to the backstack * @param backStackTag The tag used for the backstack tag * @param customAnimate Whether to provide a custom animation for the Fragment. If * <code>true</code>, the Fragment also needs to be annotated with a * {@linkplain li.barter.fragments.FragmentTransition} annotation which * describes the transition to perform. If <code>false</code>, will use * default fragment transition * @param remove Whether the fragment should be removed before adding it */ public void loadFragment(final int containerResId, final AbstractBarterLiFragment fragment, final String tag, final boolean addToBackStack, final String backStackTag, final boolean customAnimate, final boolean remove) { final FragmentManager fragmentManager = getSupportFragmentManager(); if (remove) { fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); fragmentManager.beginTransaction().remove(fragment).commit(); fragmentManager.executePendingTransactions(); } final FragmentTransaction transaction = fragmentManager.beginTransaction(); if (customAnimate) { final FragmentTransition fragmentTransition = fragment.getClass() .getAnnotation(FragmentTransition.class); if (fragmentTransition != null) { transaction.setCustomAnimations(fragmentTransition.enterAnimation(), fragmentTransition.exitAnimation(), fragmentTransition.popEnterAnimation(), fragmentTransition.popExitAnimation()); } } transaction.replace(containerResId, fragment, tag); if (addToBackStack) { transaction.addToBackStack(backStackTag); } transaction.commit(); }
From source file:com.androzic.MainActivity.java
private void selectItem(int position) { if (mDrawerAdapter.getSelectedItem() == position) return;/*from w w w . j a v a 2 s . c o m*/ DrawerItem item = mDrawerItems.get(position); // Actions if (item.type == DrawerItem.ItemType.INTENT) { if (position > 0) startActivity(item.intent); } // Fragments else if (item.type == DrawerItem.ItemType.FRAGMENT) { FragmentManager fm = getSupportFragmentManager(); if (fm.getBackStackEntryCount() > 0) { fm.popBackStackImmediate(0, FragmentManager.POP_BACK_STACK_INCLUSIVE); } FragmentTransaction ft = fm.beginTransaction(); Fragment parent = fm.findFragmentById(R.id.content_frame); if (parent != null) { ft.detach(parent); } Fragment fragment = fm.findFragmentByTag(item.name); if (fragment != null) { ft.attach(fragment); } else { ft.add(R.id.content_frame, item.fragment, item.name); } ft.commit(); // update selected item and title, then close the drawer updateDrawerUI(item, position); } else if (item.type == DrawerItem.ItemType.ACTION) { Log.e(TAG, "ACTION"); runOnUiThread(item.action); } mDrawerLayout.closeDrawer(mDrawerList); }
From source file:com.tomeokin.lspush.ui.navigator.Navigator.java
public static void moveTo(Context context, FragmentManager fragmentManager, Class<? extends Fragment> fragment, Bundle args, @IdRes int containerId, boolean addToBackStack, int[] anim) { final String tag = fragment.getName(); Fragment current = fragmentManager.findFragmentById(containerId); Fragment target = fragmentManager.findFragmentByTag(tag); if (target == null) { try {// w ww .j a v a 2 s .com target = Fragment.instantiate(context, fragment.getName(), args); } catch (Exception e) { // ignore } if (target == null) { return; } FragmentTransaction transaction = fragmentManager.beginTransaction(); if (anim == null || (anim.length != 2 && anim.length != 4)) { transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); } else if (anim.length == 2) { transaction.setCustomAnimations(anim[0], anim[1]); } else { transaction.setCustomAnimations(anim[0], anim[1], anim[2], anim[3]); } if (current == null) { transaction.add(containerId, target, tag); } else { transaction.replace(containerId, target, tag); if (addToBackStack) { transaction.addToBackStack(tag); } } transaction.commit(); } else { if (current == target) { return; } // set result Intent intent = new Intent(); if (args != null) { intent.putExtras(args); } target.onActivityResult(REQUEST_CODE, Activity.RESULT_OK, intent); boolean result = fragmentManager.popBackStackImmediate(tag, 0); if (!result) { fragmentManager.popBackStackImmediate(0, POP_BACK_STACK_INCLUSIVE); } } }
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())); }/*from w w w.j a va 2 s . c o 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.gateshipone.malp.application.activities.MainActivity.java
@Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. int id = item.getItemId(); View coordinatorLayout = findViewById(R.id.main_coordinator_layout); coordinatorLayout.setVisibility(View.VISIBLE); NowPlayingView nowPlayingView = (NowPlayingView) findViewById(R.id.now_playing_layout); if (nowPlayingView != null) { nowPlayingView.minimize();/* w ww.jav a 2s. c o m*/ } FragmentManager fragmentManager = getSupportFragmentManager(); // clear backstack fragmentManager.popBackStackImmediate("", FragmentManager.POP_BACK_STACK_INCLUSIVE); Fragment fragment = null; String fragmentTag = ""; if (id == R.id.nav_library) { // Handle the camera action fragment = new MyMusicTabsFragment(); fragmentTag = MyMusicTabsFragment.TAG; } else if (id == R.id.nav_saved_playlists) { fragment = new SavedPlaylistsFragment(); fragmentTag = SavedPlaylistsFragment.TAG; } else if (id == R.id.nav_files) { fragment = new FilesFragment(); fragmentTag = FilesFragment.TAG; Bundle args = new Bundle(); args.putString(FilesFragment.EXTRA_FILENAME, ""); } else if (id == R.id.nav_search) { fragment = new SearchFragment(); fragmentTag = SearchFragment.TAG; } else if (id == R.id.nav_profiles) { fragment = new ProfilesFragment(); fragmentTag = ProfilesFragment.TAG; } else if (id == R.id.nav_app_settings) { fragment = new SettingsFragment(); fragmentTag = SettingsFragment.TAG; } else if (id == R.id.nav_server_properties) { fragment = new ServerPropertiesFragment(); fragmentTag = ServerPropertiesFragment.TAG; } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); // Do the actual fragment transaction FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.fragment_container, fragment, fragmentTag); transaction.commit(); return true; }
From source file:com.kuassivi.october.util.Navigator.java
/** * Pops back to a specific BackStack position. * <p>/*from www. j ava 2s .co m*/ * It will detach and destroy forwarded Fragments. * * @param index index in the back stack entry */ public void popToStack(int index) { if (!(activity instanceof FragmentActivity)) { throw new RuntimeException("The activity must inherits from FragmentActivity or AppCompatActivity"); } FragmentActivity fragmentActivity = (FragmentActivity) activity; FragmentManager fragmentManager = fragmentActivity.getSupportFragmentManager(); /* * The method isFinishing() prevents to load a Fragment * when the activity is going to be killed or destroyed. */ if (fragmentManager == null || fragmentActivity.isFinishing()) { return; } final int firstFragmentCount = 1; int backStackCount = fragmentManager.getBackStackEntryCount(); if (backStackCount <= firstFragmentCount) { fragmentActivity.finish(); } else { if (index > 0) { List<Fragment> fragments = fragmentManager.getFragments(); this.fragment = fragments.get(index - 1); fragmentManager.popBackStackImmediate(index, FragmentManager.POP_BACK_STACK_INCLUSIVE); } } }
From source file:org.videolan.vlc.gui.VLCMainActivity.java
/** * Hide the current secondary fragment./* w ww .ja v a 2 s . com*/ */ public void popSecondaryFragment() { FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); mCurrentFragment = mPreviousFragment; }
From source file:org.namelessrom.devicecontrol.MainActivity.java
private void loadFragmentPrivate(final int i, final boolean onResume) { switch (i) {/* w w w . j av a2 s . c o m*/ default: // slip through... //-------------------------------------------------------------------------------------- case DeviceConstants.ID_ABOUT: if (!onResume) mCurrentFragment = new AboutFragment(); mTitle = mFragmentTitle = R.string.app_name; mSubFragmentTitle = -1; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_DEVICE_INFORMATION: if (!onResume) mCurrentFragment = new DeviceInformationFragment(); mTitle = mFragmentTitle = R.string.device; mSubFragmentTitle = -1; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_FEATURES: if (!onResume) mCurrentFragment = new DeviceFeatureFragment(); mTitle = mFragmentTitle = R.string.features; mSubFragmentTitle = -1; break; case DeviceConstants.ID_FAST_CHARGE: if (!onResume) mCurrentFragment = new FastChargeFragment(); mTitle = mSubFragmentTitle = R.string.fast_charge; break; case DeviceConstants.ID_SOUND_CONTROL: if (!onResume) mCurrentFragment = new SoundControlFragment(); mTitle = mSubFragmentTitle = R.string.sound_control; break; case DeviceConstants.ID_KSM: if (!onResume) mCurrentFragment = new KsmFragment(); mTitle = mSubFragmentTitle = R.string.ksm; break; case DeviceConstants.ID_UKSM: if (!onResume) mCurrentFragment = new UksmFragment(); mTitle = mSubFragmentTitle = R.string.uksm; break; case DeviceConstants.ID_VOLTAGE: if (!onResume) mCurrentFragment = new VoltageFragment(); mTitle = mSubFragmentTitle = R.string.voltage_control; break; case DeviceConstants.ID_ENTROPY: if (!onResume) mCurrentFragment = new EntropyFragment(); mTitle = mSubFragmentTitle = R.string.entropy; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_PERFORMANCE_INFO: if (!onResume) mCurrentFragment = new InformationFragment(); mTitle = mFragmentTitle = R.string.information; mSubFragmentTitle = -1; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_PERFORMANCE_CPU_SETTINGS: if (!onResume) mCurrentFragment = new CpuSettingsFragment(); mTitle = mFragmentTitle = R.string.cpusettings; mSubFragmentTitle = -1; break; case DeviceConstants.ID_GOVERNOR_TUNABLE: if (!onResume) mCurrentFragment = new GovernorFragment(); mTitle = mSubFragmentTitle = R.string.cpu_governor_tuning; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_PERFORMANCE_GPU_SETTINGS: if (!onResume) mCurrentFragment = new GpuSettingsFragment(); mTitle = mFragmentTitle = R.string.gpusettings; mSubFragmentTitle = -1; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_FILESYSTEM: if (!onResume) mCurrentFragment = new FilesystemFragment(); mTitle = mFragmentTitle = R.string.filesystem; mSubFragmentTitle = -1; break; case DeviceConstants.ID_IOSCHED_TUNING: if (!onResume) mCurrentFragment = new IoSchedConfigFragment(); mTitle = mSubFragmentTitle = R.string.io; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_THERMAL: if (!onResume) mCurrentFragment = new ThermalFragment(); mTitle = mFragmentTitle = R.string.thermal; mSubFragmentTitle = -1; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_TOOLS_TASKER: if (!onResume) mCurrentFragment = new TaskerFragment(); mTitle = mFragmentTitle = R.string.tasker; mSubFragmentTitle = -1; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_TOOLS_FLASHER: if (!onResume) mCurrentFragment = new FlasherFragment(); mTitle = mFragmentTitle = R.string.flasher; mSubFragmentTitle = -1; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_TOOLS_MORE: if (!onResume) mCurrentFragment = new ToolsMoreFragment(); mTitle = mFragmentTitle = R.string.more; mSubFragmentTitle = -1; break; case DeviceConstants.ID_TOOLS_VM: if (!onResume) mCurrentFragment = new SysctlFragment(); mTitle = mSubFragmentTitle = R.string.sysctl_vm; break; case DeviceConstants.ID_TOOLS_EDITORS_VM: if (!onResume) mCurrentFragment = new SysctlEditorFragment(); mTitle = mSubFragmentTitle = R.string.sysctl_vm; break; case DeviceConstants.ID_TOOLS_EDITORS_BUILD_PROP: if (!onResume) mCurrentFragment = new BuildPropEditorFragment(); mTitle = mSubFragmentTitle = R.string.buildprop; break; case DeviceConstants.ID_TOOLS_APP_MANAGER: if (!onResume) mCurrentFragment = new AppListFragment(); mTitle = mSubFragmentTitle = R.string.app_manager; break; case DeviceConstants.ID_TOOLS_WIRELESS_FM: if (!onResume) mCurrentFragment = new WirelessFileManagerFragment(); mTitle = mSubFragmentTitle = R.string.wireless_file_manager; break; //-------------------------------------------------------------------------------------- case DeviceConstants.ID_PREFERENCES: if (!onResume) mCurrentFragment = new PreferencesFragment(); mTitle = mFragmentTitle = R.string.preferences; mSubFragmentTitle = -1; break; } restoreActionBar(); if (onResume) { return; } final boolean isSubFragment = mSubFragmentTitle != -1; final FragmentManager fragmentManager = getSupportFragmentManager(); if (!isSubFragment && fragmentManager.getBackStackEntryCount() > 0) { // set a lock to prevent calling setFragment as onResume gets called AppHelper.preventOnResume = true; MainActivity.sDisableFragmentAnimations = true; fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); MainActivity.sDisableFragmentAnimations = false; // release the lock AppHelper.preventOnResume = false; } final FragmentTransaction ft = fragmentManager.beginTransaction(); if (isSubFragment) { ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_right, R.anim.slide_in_left, R.anim.slide_out_left); ft.addToBackStack(null); } ft.replace(R.id.container, mCurrentFragment); ft.commit(); final MaterialMenuDrawable.IconState iconState; if (isSubFragment) { iconState = MaterialMenuDrawable.IconState.ARROW; } else { iconState = MaterialMenuDrawable.IconState.BURGER; } sMaterialMenu.animateState(iconState); }
From source file:me.kaidul.uhunt.MainActivity.java
private void replaceFragment(Fragment fragment, int position) { FragmentManager manager = getSupportFragmentManager(); String backStateName = fragment.getClass().getName(); String fragmentTag = backStateName; boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0); if (!fragmentPopped && manager.findFragmentByTag(fragmentTag) == null) { FragmentTransaction ft = manager.beginTransaction(); ft.replace(R.id.content_frame, fragment, fragmentTag); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.addToBackStack(backStateName); ft.commit();/*from w w w . jav a 2s .c om*/ } mDrawerList.setItemChecked(position, true); setTitle(title[position]); mDrawerLayout.closeDrawer(mDrawerList); }
From source file:org.gateshipone.odyssey.activities.OdysseyMainActivity.java
@Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. int id = item.getItemId(); View coordinatorLayout = findViewById(R.id.main_coordinator_layout); coordinatorLayout.setVisibility(View.VISIBLE); NowPlayingView nowPlayingView = (NowPlayingView) findViewById(R.id.now_playing_layout); if (nowPlayingView != null) { nowPlayingView.minimize();/*from ww w . j av a 2s. c o m*/ } FragmentManager fragmentManager = getSupportFragmentManager(); // clear backstack fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); Fragment fragment = null; if (id == R.id.nav_my_music) { fragment = new MyMusicFragment(); } else if (id == R.id.nav_saved_playlists) { fragment = new SavedPlaylistsFragment(); } else if (id == R.id.nav_bookmarks) { fragment = new BookmarksFragment(); } else if (id == R.id.nav_files) { fragment = new FilesFragment(); // open the default directory List<String> storageVolumesList = mFileExplorerHelper.getStorageVolumes(getApplicationContext()); String defaultDirectory = "/"; if (!storageVolumesList.isEmpty()) { // choose the latest used storage volume as default SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); defaultDirectory = sharedPref.getString(getString(R.string.pref_file_browser_root_dir_key), storageVolumesList.get(0)); } Bundle args = new Bundle(); args.putString(FilesFragment.ARG_DIRECTORYPATH, defaultDirectory); args.putBoolean(FilesFragment.ARG_ISROOTDIRECTORY, storageVolumesList.contains(defaultDirectory)); fragment.setArguments(args); } else if (id == R.id.nav_settings) { fragment = new SettingsFragment(); } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); if (drawer != null) { drawer.closeDrawer(GravityCompat.START); } FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.fragment_container, fragment); transaction.commit(); return true; }