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();

私は2つの異なるレイアウトファイルを使用しています.2つのLinearLayoutを含むlayout/calendrier.xml、1つのLinearLayoutを含むlayout-port/calendrier.xml

問題は、アプリケーションを横向きモード (向き == 2) で起動し、縦向きモード (向き == 1) に切り替えると、まだフラグメント Test のメソッドが実行されていることです。

テストフラグメントを完全に削除するには?

4

1 に答える 1

0

2 つのトランザクションを作成しましたが、2 つ目のトランザクションのみをコミットしました。この行を削除してみてください:

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