2012-04-17 15 views
1

私はそれのようないくつかの質問を読んだが、私は自分の検索で何をすべきかよく分からない。回転している画面のあとにAndroidフラグメントが重複する

私は、画面の一番下

およびその他の意志作成断片について

<FrameLayout 
     android:id="@+id/details" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/tickerLL" 
     android:layout_below="@id/header" 
     android:background="@drawable/background" /> 

上のタブメニューの

<fragment 
     android:id="@+id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     class="com.****.****.ui.TabsFragment" /> 

を持っています。

私は9つのタブメニューを持っています。誰もが断片です。

一部の断片の風景は別のアクティビティです。そして私は電話を回し、断片はうまくいきます。しかし、私が後で高速で回転すると、私の断片Activty、TabsFragment、および他の作成された断片が再現され、断片が重複しています。

私はTabsFragmentで自分のフラグメントを管理しています。そして私の抽象的なフラグメントクラスは、以前のフラグメントとサブフラグメントを持っています。私が戻ると、前のフラグメントはそのサブフラグメントを閉じ、それをヌルにします。

どうすればよいですか?

答えて

2

コンフィグレーションの変更中に、Androidは新しいアクティビティを設定するときに古いアクティビティにあったすべてのフラグメントを復元または再作成します。したがって、新しいアクティビティインスタンスで作業する場合は、そのことを考慮する必要があります。クリーンスレートで始めると仮定しないでください。

+0

どうすればいいですか?私のすべてのフラグメントはtabsFragmentで作成されます... – atasoyh

+0

@CommonsWare:フラグメントを使用するときに言ったようにクリーンステートから始める方法を知っていますか? –

+1

@AlexTran:自分のトランザクションを介して追加された古いトランザクションをすべて削除するには、 'FragmentTransaction'を実行することができます。 – CommonsWare

関連する問題