6343


現在`Fragment`を使って画面を切り替えようとしているのですが、`transaction.replace`を行うと、layout_Aの画面とlayout_Bの画面が重なった状態で表示されてしまいます。試しに`transaction.remove`をして`transaction.add`を行っても結果は同じでした。`Fragment`の使い方が間違っているのでしょうか？どこを修正すれば画面を切り替えれるようになるでしょうか？すみませんが、宜しくお願いします。

[code]

    FragmentManager manager = getFragmentManager();
    FragmentTransaction transaction = manager.beginTransaction();
    transaction.replace(R.id.fragment_changeMode, new FragmentB());
    transaction.addToBackStack(null);
    transaction.commit();
    
[/code]

layout_A.xml

[code]

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <fragment
            android:id="@+id/fragment_change"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            class="taro.ghost.fragment.FragmentA"/>
    
    </RelativeLayout>
    
[/code]

layout_B.xml

[code]

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <ImageButton
            android:id="@+id/btn"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_centerInParent="true"
            android:background="@drawable/contact" />
    
    </RelativeLayout>
    
[/code]


CC BY-SA 3.0
2015-02-11T22:17:27.090
6342
2015-02-12T00:15:31.293
5210
question
android fragment
Fragmentをreplaceしても一つ前のFragmentが残る


レイアウトXMLで指定した`Fragment`は`add`や`replace`対象にしてはいけません。

この場合、`layout_A.xml`を次のように変更し、`onCreate()`あたりで`FragmentA`をaddするようにします。

[code]

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/container">
    </RelativeLayout>
    
[/code]


CC BY-SA 3.0
2015-02-12T00:15:31.293
6343
2015-02-12T00:15:31.293
845
6342
answer