显示新片段中以前片段的按钮(Android)

时间:2017-10-02 08:28:01

标签: android android-fragments

我有一个奇怪的问题。我想从当前的片段中打开新的片段。 所以我这样做:

    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 here enter image description here

任何人都可以解释,为什么会这样?

2 个答案:

答案 0 :(得分:1)

调用FragmentTransition replace(R.id.container,fragment)的工作方式与调用给定容器的每个片段的remove和新片段的add相同。如果您之前的片段未被删除(Button仍显示),那是因为您为R.id.teamDetailAdmin以外的容器添加了该片段。要成功替换片段,如果它们位于不同的容器中,则需要从其容器中删除当前片段,并将新片段添加到所需的容器中。

答案 1 :(得分: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();