Fragments可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。
Fragments的主要优点:你可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。
每个Fragment都是一个独立的模块,紧紧地与activity绑定在一起。可以运行中动态地移除、加入、交换等。
Fragments提供一个新的方式让你在不同的安卓设备上统一你的UI。
1. onAttach()
Fragment 附加在父窗口Activity上。
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// 这个方法你可以获取到父Activity的引用。
}
做一些Fragment初始化操作
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 初始化Fragment
}
给Fragment创建自己的UI
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
// 创建或者解析加载一个视图,然后返回作为Fragment的UI
// 如果这个Fragment没有UI,那么返回NULL
return inflater.inflate(R.layout.my_fragment, container, false);
}
当父Activity和当前的Fragment UI都完整创建完成时被调用
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// 完成Fragment的初始化,不对前面不是已经初始化好了么?
//这个方法主要是初始化那些你需要你的父Activity或者Fragment的UI已经被完整初始化才能初始化的元素。
//具体你看图中的位置你能看出点端倪来。比如UI的元素没被解析反射进来,你还想用? 想得美,等它初始化完,你再用。
}
6. onSaveInstance
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
//这个Bundle会被传入到onCreate、onCreateView
super.onSaveInstanceState(savedInstanceState);
}
7. onDestroyView
当Fragment的UI被分离的时候
@Override
public void onDestroyView() {
//清除所有跟视图相关的资源
super.onDestroyView();
}
8. OnDestroy
生命周期尾
@Override
public void onDestroy(){
//清除所有资源包括要结束的线程,关闭数据库连接等等。
super.onDestroy();
}
9. OnDetach
当Fragment从父activity身上分离
@Override
public void onDetach() {
super.onDetach();
}