思路:Fragment和Activity类似,不一样的地方在于Fragment作为小卡片式Activity出现,因此首先创建的Fragment需要绑定布局(和新建Activity类似)。然后便可以把fragment当成组件来用添加至Activity。
-
创建Fragment
-
静态添加Fragment
将建立好的fragment当作组件添加至Activity_main.xml文件中<fragment android:id="@+id/fragment1" android:name="com.example.fragmentdemo.Fragment1" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" /> <fragment android:id="@+id/fragment2" android:name="com.example.fragmentdemo.Fragment2" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" />
-
动态添加Fragment
<RelativeLayout 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:id="@+id/main_layout" //这里注意添加ID以方便后面用Fragment替换Activity android:layout_width="wrap_content" android:layout_height="wrap_content" android:baselineAligned="false"> <Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="false" android:layout_centerVertical="true" android:layout_marginLeft="100dp" android:layout_marginBottom="412dp" android:onClick="addSomething" android:text="添加" /> <ImageButton android:id="@+id/imageButton" android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@mipmap/ic_launcher" />
附加提示:
1.关于绑定fragment XML文件与class文件代码行:
public class fragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment, container,false);
}
}
2.动态添加Fragment代码:
FragmentManager fragmentManager=getSupportFragmentManager();
fragment fragment=new fragment();
fragmentManager.beginTransaction().replace(R.id.main_layout,fragment).commit();