切记:fragment一定要放在framlayout中,不然不会被替换完全(就是切换之后原来的fagment可能还会存在)
main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical">
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<fragment
android:name="com.liu25.asmallpark.Fragment.Fragment_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/fragment_1" />
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!--四个Button>
<LinearLayout/>
<LinearLayout/>
fragment_1.xml(灰色背景)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f3f3f3"
android:orientation="vertical">
</LinearLayout>
fragment_2.xml(黑色背景)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:orientation="vertical">
</LinearLayout>
main.java
在Button点击事件里面:
FragmentManager fragmentManager = getFragmentManager();//
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.content, fragment_1);
transaction.commit();
彩蛋:在fragment中获得Context:view.getContext()