Android-----Fragment动态添加和替换

    /**
     * 添加一个Fragment
     * @param containerId
     * @param fragment
     * @param tag
     */
    protected void addFragment(int containerId, Fragment fragment, String tag) {
        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.add(containerId,fragment,tag);
        fragmentTransaction.addToBackStack(tag);
        fragmentTransaction.commit();
    }

    /**
     * 替换Fragment
     * @param containerId
     * @param fragment
     * @param tag
     */
    protected void replaceFragment(int containerId,Fragment fragment,String tag) {
        if(getSupportFragmentManager().findFragmentByTag(tag) == null) {
            FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
            fragmentTransaction.replace(containerId,fragment,tag);
            fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
            fragmentTransaction.addToBackStack(tag);
            fragmentTransaction.commit();
        }else {
            //弹出tag标记的那层以上的所有fragment
            getSupportFragmentManager().popBackStack(tag,0);
        }
    }

猜你喜欢

转载自blog.csdn.net/yb1020368306/article/details/79416642