一.Fragment简述
- fragment从Android v3.0版本开始引入,其翻译为:碎片
- Fragment是activity的一部分,所以对比activity,Fragment只会生成java文件和对应的xml布局文件,不会在manifests里生成注册的代码
- 具有自己的生命周期,能接收自己的输入事件,并且可以在 Activity 运行时添加或移除片段
二.Fragment创建
两种方法:①通过xml标签 ②通过相关java代码动态创建
- 通过xml标签
①总xml文件布局activity_main,设有上下两个碎片fragment:fragment_center和fragment_bottom
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/fragment_center"
android:name="com.example.firstapplication.utisl.CenterFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="8"/>
<fragment
android:id="@+id/fragment_bottom"
android:name="com.example.firstapplication.utisl.BottomFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
②fragment_center.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff">
<Button
android:layout_width="300dp"
android:layout_height="50dp"
android:text="跳转"
android:background="@drawable/center_btn_shape"
android:layout_gravity="center"
android:layout_marginLeft="60dp"/>
</LinearLayout>
③CenteFragment
public class CenterFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_center,container,false);
return view;
}
}
(fragment_bottom和BottomFragment类似fragment_center和CerterFragment)
- 通过相关java代码动态创建
①activity_main.xml文件设置两个帧布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/layout_center"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="8"/>
<FrameLayout
android:id="@+id/layout_bottom"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
②
FragmentManager是用来管理Fragment 的,负责添加、移除、显示、隐藏,通常在Activity中通过接口getSupportFragmentManager或者getFragmentManager获得FragmentManager对象,进行fragment 管理。