android.support.v4.app.FragmentManager#popBackStackImmediate ( )源码实例Demo

下面列出了android.support.v4.app.FragmentManager#popBackStackImmediate ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: VCL-Android   文件: MainActivity.java
private static void ShowFragment(FragmentActivity activity, String tag, Fragment fragment, String previous) {
    if (fragment == null) {
        Log.e(TAG, "Cannot show a null fragment, ShowFragment("+tag+") aborted.");
        return;
    }

    FragmentManager fm = activity.getSupportFragmentManager();

    //abort if fragment is already the current one
    Fragment current = fm.findFragmentById(R.id.fragment_placeholder);
    if(current != null && current.getTag().equals(tag))
        return;

    //try to pop back if the fragment is already on the backstack
    if (fm.popBackStackImmediate(tag, 0))
        return;

    //fragment is not there yet, spawn a new one
    FragmentTransaction ft = fm.beginTransaction();
    ft.setCustomAnimations(R.anim.anim_enter_right, R.anim.anim_leave_left, R.anim.anim_enter_left, R.anim.anim_leave_right);
    ft.replace(R.id.fragment_placeholder, fragment, tag);
    ft.addToBackStack(previous);
    ft.commit();
}
 
源代码2 项目: funcodetuts   文件: MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    // Code here will be triggered once the drawer closes as we don't want anything to happen so we leave this blank
    mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
            toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);

    //calling sync state is necessary or else your hamburger icon wont show up
    mActionBarDrawerToggle.syncState();

    if (savedInstanceState == null) {
        // update the main content by replacing fragments
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        FragmentTransaction transaction = fragmentManager.beginTransaction();

        transaction.replace(R.id.container, new ContainerFragment());
        transaction.commit();
    }
}
 
@Override
protected void intializePansAfterRotation(int oldPanNumbers, @NonNull FragmentManager fragmentManager) {
    if (oldPanNumbers != paneNumber) {
        if (oldPanNumbers == 1) {
            Fragment oldBookInfo = fragmentManager.findFragmentByTag(BOOK_INFORMATION_FRAGMENT_TAG);
            if (oldBookInfo != null) {
                fragmentManager.popBackStackImmediate(BOOK_INFORMATION_FRAGMENT_ADDED, FragmentManager.POP_BACK_STACK_INCLUSIVE);
                fragmentManager.beginTransaction().remove(oldBookInfo).commit();
                fragmentManager.beginTransaction()
                        .replace(R.id.book_info_container, oldBookInfo, BOOK_INFORMATION_FRAGMENT_TAG)
                        .commit();

            }
            Fragment oldBookList = fragmentManager.findFragmentByTag(BOOK_LIST_FRAGMENT_TAG);
            if (oldBookList != null) {
                fragmentManager.popBackStackImmediate(BOOK_LIST_FRAGMENT_ADDED, FragmentManager.POP_BACK_STACK_INCLUSIVE);
                fragmentManager.beginTransaction().remove(oldBookList).commit();
                fragmentManager.beginTransaction()
                        .replace(R.id.book_list_container, oldBookList, BOOK_LIST_FRAGMENT_TAG)
                        .commit();

            }
        }
    }
}
 
源代码4 项目: tysq-android   文件: BitBaseFragment.java
/**
 * 判断当前 Fragment 是否消费回退事件
 *
 * @param fragmentManager 上级fragment 的管理
 * @return
 */
public boolean onConsumeBackEvent(FragmentManager fragmentManager) {
    boolean consume = FragmentCompat.isConsumeBackEvent(getChildFragmentManager());
    if (consume) {
        // 子fragment消费成功以后,判断当前fragment是否还有子fragment,没有的话,看情况决定是否关闭
        if (getChildFragmentManager().getBackStackEntryCount() == 0 && noChild2Finish()) {
            return fragmentManager.popBackStackImmediate();
        }
        return true;
    } else {
        // 子fragment未消费回退事件,则由当前fragment进行消费
        return fragmentManager.popBackStackImmediate();
    }
}
 
源代码5 项目: AndroidUtilCode   文件: FragmentUtils.java
/**
 * Pop to fragment.
 *
 * @param fm            The manager of fragment.
 * @param popClz        The class of fragment will be popped to.
 * @param isIncludeSelf True to include the fragment, false otherwise.
 * @param isImmediate   True to pop immediately, false otherwise.
 */
public static void popTo(@NonNull final FragmentManager fm,
                         final Class<? extends Fragment> popClz,
                         final boolean isIncludeSelf,
                         final boolean isImmediate) {
    if (isImmediate) {
        fm.popBackStackImmediate(popClz.getName(),
                isIncludeSelf ? FragmentManager.POP_BACK_STACK_INCLUSIVE : 0);
    } else {
        fm.popBackStack(popClz.getName(),
                isIncludeSelf ? FragmentManager.POP_BACK_STACK_INCLUSIVE : 0);
    }
}
 
源代码6 项目: MongoExplorer   文件: SinglePaneActivity.java
private void clearBackStack() {
	FragmentManager fm = getSupportFragmentManager();

	while (fm.getBackStackEntryCount() > 0) {
		fm.popBackStackImmediate();
	}
}
 
源代码7 项目: Wizard   文件: Wizard.java
public boolean returnToFirst() {
  if (!activity.isFinishing()) {
    FragmentManager fragmentManager = activity.getSupportFragmentManager();
    if (fragmentManager.getBackStackEntryCount() > 0) {
      String name = fragmentManager.getBackStackEntryAt(0).getName();
      fragmentManager.popBackStackImmediate(name, FragmentManager.POP_BACK_STACK_INCLUSIVE);
      return true;
    }
  }
  return false;
}
 
源代码8 项目: RxGpsService   文件: RouteFragment.java
private void replaceFragment(int id, Fragment fragment) {
    FragmentManager fragmentManager = getChildFragmentManager();
    fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    fragmentManager.beginTransaction()
            .replace(id, fragment, fragment.getClass().getSimpleName())
            .commit();
}
 
源代码9 项目: DeviceInfo   文件: FragmentUtil.java
public void clearBackStackFragmets(final String tag)
    {
        // in my case I get the support fragment manager, it should work with the native one too
        FragmentManager fragmentManager = mActivity.getSupportFragmentManager();
        // this will clear the back stack and displays no animation on the screen
        fragmentManager.popBackStackImmediate(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        // fragmentManager.popBackStackImmediate(SplashFragment.class.getCanonicalName(),FragmentManager.POP_BACK_STACK_INCLUSIVE);

//        Methods.hideKeyboard();
    }
 
源代码10 项目: Shield   文件: MainActivity.java
@Override
public void onBackPressed() {
    FragmentManager fm = getSupportFragmentManager();
    if (fm.popBackStackImmediate()){// pop成功;
        getSupportActionBar().setTitle(R.string.app_name);
        getSupportActionBar().setDisplayHomeAsUpEnabled(false);
    } else {
        super.onBackPressed();
    }
}
 
源代码11 项目: Android-UtilCode   文件: FragmentUtils.java
/**
 * 出栈同级别fragment
 *
 * @param fragmentManager fragment管理器
 */
public static void popFragments(@NonNull FragmentManager fragmentManager) {
    while (fragmentManager.getBackStackEntryCount() > 0) {
        fragmentManager.popBackStackImmediate();
    }
}
 
源代码12 项目: MongoExplorer   文件: SinglePaneActivity.java
public void onEvent(Events.CollectionDropped e) {
	FragmentManager fm = getSupportFragmentManager();
	fm.popBackStackImmediate();
	CollectionListFragment fragment = (CollectionListFragment)fm.findFragmentById(R.id.frame_1);
	fragment.onEvent(e);
}
 
源代码13 项目: MVVMArms   文件: FragmentUtils.java
/**
 * 出栈同级别fragment
 *
 * @param fragmentManager fragment管理器
 */
public static void popFragments(@NonNull FragmentManager fragmentManager) {
    while (fragmentManager.getBackStackEntryCount() > 0) {
        fragmentManager.popBackStackImmediate();
    }
}
 
源代码14 项目: styT   文件: FragmentUtils.java
/**
 * 出栈fragment
 *
 * @param fragmentManager fragment管理器
 * @return {@code true}: 出栈成功<br>{@code false}: 出栈失败
 */
public static boolean popFragment(@NonNull final FragmentManager fragmentManager) {
    return fragmentManager.popBackStackImmediate();
}
 
源代码15 项目: styT   文件: FragmentUtils.java
/**
 * 出栈到指定fragment
 *
 * @param fragmentManager fragment管理器
 * @param fragmentClass   Fragment类
 * @param isIncludeSelf   是否包括Fragment类自己
 * @return {@code true}: 出栈成功<br>{@code false}: 出栈失败
 */
public static boolean popToFragment(@NonNull final FragmentManager fragmentManager,
                                    final Class<? extends Fragment> fragmentClass,
                                    final boolean isIncludeSelf) {
    return fragmentManager.popBackStackImmediate(fragmentClass.getName(), isIncludeSelf ? FragmentManager.POP_BACK_STACK_INCLUSIVE : 0);
}
 
源代码16 项目: TikTok   文件: FragmentUtils.java
/**
 * 出栈fragment
 *
 * @param fragmentManager fragment管理器
 * @return {@code true}: 出栈成功<br>{@code false}: 出栈失败
 */
public static boolean popFragment(@NonNull FragmentManager fragmentManager) {
    return fragmentManager.popBackStackImmediate();
}
 
源代码17 项目: TikTok   文件: FragmentUtils.java
/**
 * 出栈到指定fragment
 *
 * @param fragmentManager fragment管理器
 * @param fragmentClass   Fragment类
 * @param isIncludeSelf   是否包括Fragment类自己
 * @return {@code true}: 出栈成功<br>{@code false}: 出栈失败
 */
public static boolean popToFragment(@NonNull FragmentManager fragmentManager,
                                    Class<? extends Fragment> fragmentClass,
                                    boolean isIncludeSelf) {
    return fragmentManager.popBackStackImmediate(fragmentClass.getSimpleName(), isIncludeSelf ? FragmentManager.POP_BACK_STACK_INCLUSIVE : 0);
}
 
源代码18 项目: Android-UtilCode   文件: FragmentUtils.java
/**
 * 出栈fragment
 *
 * @param fragmentManager fragment管理器
 * @return {@code true}: 出栈成功<br>{@code false}: 出栈失败
 */
public static boolean popFragment(@NonNull FragmentManager fragmentManager) {
    return fragmentManager.popBackStackImmediate();
}
 
源代码19 项目: Android-UtilCode   文件: FragmentUtils.java
/**
 * 出栈到指定fragment
 *
 * @param fragmentManager fragment管理器
 * @param fragmentClass   Fragment类
 * @param isIncludeSelf   是否包括Fragment类自己
 * @return {@code true}: 出栈成功<br>{@code false}: 出栈失败
 */
public static boolean popToFragment(@NonNull FragmentManager fragmentManager,
                                    Class<? extends Fragment> fragmentClass,
                                    boolean isIncludeSelf) {
    return fragmentManager.popBackStackImmediate(fragmentClass.getName(), isIncludeSelf ? FragmentManager.POP_BACK_STACK_INCLUSIVE : 0);
}
 
源代码20 项目: MVVMArms   文件: FragmentUtils.java
/**
 * 出栈到指定fragment
 *
 * @param fragmentManager fragment管理器
 * @param fragmentClass   Fragment类
 * @param isIncludeSelf   是否包括Fragment类自己
 * @return {@code true}: 出栈成功<br>{@code false}: 出栈失败
 */
public static boolean popToFragment(@NonNull FragmentManager fragmentManager,
                                    Class<? extends Fragment> fragmentClass,
                                    boolean isIncludeSelf) {
    return fragmentManager.popBackStackImmediate(fragmentClass.getSimpleName(), isIncludeSelf ? FragmentManager.POP_BACK_STACK_INCLUSIVE : 0);
}