1

我有一个活动,我想根据设备的方向更改片段。所以这是我的代码:

FragmentTransaction ft = getFragmentManager().beginTransaction();

 if(getFragmentManager().findFragmentById(R.id.calendrier_calendrierhebdomadaire) != null){
        Fragment fragment = getFragmentManager().findFragmentById(R.id.calendrier_calendrierhebdomadaire);
        ft.remove(fragment);
    }

ft = getFragmentManager().beginTransaction();

if(getResources().getConfiguration().orientation == 1){       
    ft.add(R.id.calendrier_planifications, new Planifications());
}

else if(getResources().getConfiguration().orientation == 2){

    ft.add(R.id.calendrier_planifications, new Planifications());
    ft.add(R.id.calendrier_calendrierhebdomadaire, new Test());  

}

ft.commit();

我正在使用两个不同的布局文件:layout/calendrier.xml 包含两个 LinearLayout,layout-port/calendrier.xml 包含 1 LinearLayout

问题是当我以横向模式(方向 == 2)启动我的应用程序并将其切换到纵向模式(方向 == 1)时,我仍然执行片段测试的方法。

如何完全删除测试片段?

4

1 回答 1

0

您创建了两个事务,但只提交了第二个事务。尝试删除此行:

ft = getFragmentManager().beginTransaction();
于 2013-08-06T20:32:35.703 回答