2017-10-02 18 views
0

私には奇妙な問題があります。私は現在のフラグメントから新しいフラグメントを開きたいと思います。 だから私はこのようにそれを行う:新しいフラグメントの前のフラグメントのボタンを表示する(Android)

Fragment fragment = new teamSettings(); 
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.replace(R.id.teamDetailAdmin, fragment); 
    // add to backstack, then back button will be work with fragments! 
    ft.addToBackStack(null); 
    // add animation 
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
    ft.commit(); 

問題は、私の新しいフラグメントに私は、以前のフラグメントでクリックされたもののボタンを見ること、です。

enter image description hereenter image description here

これがなぜ起こるか誰もが、説明できますか?

+0

フラグメントxmlsを共有できますか? –

答えて

1
Try this way, 

Please take framelayout in your current activity 

<FrameLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

Fragment fragment = new teamSettings(); 
getFragmentManager().beginTransaction().replace(R.id.container, fragment, 
fragment.getTag()).commit(); 
+0

はい、FrameLayoutsで動作しています。ありがとう! –

1

FragmentTransition replace(R.id.container,fragment)を呼び出すことは、指定されたコンテナのすべてのフラグメントにremoveを呼び出し、新しいフラグメントにaddを呼び出すこととほぼ同じです。前のフラグメントが削除されていない場合(ボタンがまだ表示されている場合)、それはR.id.teamDetailAdmin以外のコンテナのフラグメントを追加したためです。フラグメントを正常に置き換えるには、それらが異なるコンテナにある場合は、そのコンテナから現在のフラグメントを削除し、新しいフラグメントを必要なコンテナに追加する必要があります。

関連する問題