隐藏现有片段并在同一帧上加载新片段

时间:2015-03-18 08:38:35

标签: android android-fragments

我使用改变片段视图的一帧,我遇到的问题是当我放置add而不是替换新视图放在现有的

我需要的是它必须替换现有的并放置新的

由于我必须在按下后退按钮时重复使用当前视图,因此无法使用替换

Fragment fragment = null;
            fragment = new DetailFragment2();
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
                    .add(R.id.frame_container2, fragment)
                    .addToBackStack(null).commit();

2 个答案:

答案 0 :(得分:1)

如果您不使用支持库(这是您的实际情况),请使用以下代码:

final FragmentTransaction ft =
            getFragmentManager().beginTransaction();
ft.replace(R.id.frame_container2, new DetailFragment2());
ft.commit();

如果有一天您决定使用支持库,那么请改用它(只需将getFragmentManager()替换为getSupportFragmentManager()):

final FragmentTransaction ft =
            getSupportFragmentManager().beginTransaction();
ft.replace(R.id.frame_container2, new DetailFragment2());
ft.commit();

答案 1 :(得分:0)

FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction transaction;
            transaction = fragmentManager.beginTransaction();
           transaction.replace(R.id.frame_container2,fragment.newIstance());
            transaction.addToBackStack(null);
            transaction.commit();

你需要在Fragment类中创建newIstance:

public static fragment newIstance(){
        fragment frag= new fragment();
        return frag;
    }