片段 Transaction.replace() 不工作

Fragment Transaction.replace() is not working

我试图在单击按钮时转到另一个片段,但即使我在另一个片段中,我也需要保留该按钮。我想出了这个,但是当我单击 button.in 时它不会转到另一个片段 activity 除了显示第一个片段外什么都没有发生:

public class Signupnew extends AppCompatActivity {
    Button next;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_signupnew);
        getSupportActionBar().hide();
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        next = (Button) findViewById(R.id.nextf);

        final Fragment fragment = new f1();
        final Fragment fragment2 = new f2();

        FragmentManager fm = getSupportFragmentManager();
        final FragmentTransaction transaction = fm.beginTransaction();
        transaction.replace(R.id.contentFragment, fragment);
        transaction.commit();

        next.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (fragment.isAdded()){
                    System.out.println("added");
                    transaction.replace(R.id.contentFragment,fragment2);
                }
                if (fragment2.isAdded()){
                    System.out.println("added2");
                    transaction.replace(R.id.contentFragment, fragment);
                }
            }
        });


    }
}

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:layout_height="match_parent"
    android:background="@drawable/signupmorenew"
    tools:context=".Signupnew">

    <FrameLayout
        android:id="@+id/contentFragment"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <Button
            android:id="@+id/nextf"
            android:layout_width="350dp"
            android:layout_height="60dp"
            android:layout_marginLeft="28dp"
            android:layout_marginTop="540dp"
            android:background="@drawable/nextsignupandsignin"
            android:fontFamily="@font/varroxfont"
            android:text="التالي"
            android:textColor="#FDBC30"
            android:textSize="20dp" />

    </FrameLayout>




</LinearLayout>

您必须调用 FragmentTransaction#commit 才能应用更改。另外我觉得调用fragment事务的整个栈操作是一个很好的做法。

getSupportFragmentManager().beginTransaction()
   .replace()
   .commit()