アクティビティがあり、向きに応じてフラグメントを動的に追加したいので、次のようにしました: Calendrier.java
package com.thinline.dm21.calendrier;
public class Calendrier extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calendrier_main);
//ajouter les fragments Planifications et Calendrier mensuel
ajouterFragments();
}
public void ajouterFragments(){
FragmentTransaction ft = getFragmentManager().beginTransaction();
if(getResources().getConfiguration().orientation == 1){
}
else if(getResources().getConfiguration().orientation == 2){
ft.add(R.id.calendrier_planifictions, new Planifications());
ft.add(R.id.calendrier_calendrierhebdomadaire, new CalendrierHebdomadaire());
}
ft.commit();
}
}
これは私のレイアウト/calendrier_main.xmlです
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/calendrier_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<LinearLayout
android:id="@+id/calendrier_planifictions"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
</LinearLayout>
<RelativeLayout
android:id="@+id/calendrier_calendrierhebdomadaire"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" >
</RelativeLayout>
</LinearLayout>
そして私のlayout-port/calendrier.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/calendrier_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<LinearLayout
android:id="@+id/calendrier_planifictions"
android:layout_height="0dp"
android:layout_width="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
</LinearLayout>
<RelativeLayout
android:id="@+id/calendrier_calendrierhebdomadaire"
android:layout_height="0dp"
android:layout_width="match_parent"
android:layout_weight="2" >
</RelativeLayout>
</LinearLayout>
私の問題は:
- アプリケーションを縦向きモードで起動すると黒い画面が表示され、それを回転すると他の 2 つのフラグメントが表示されますが、(縦向きに) 再度回転すると、黒い画面ではなくフラグメントが残ります。 、onCreateとonDestroyの両方が実行されるため、通常は黒い画面が表示されるはずです