1.什么是Fragment
Fragment可以看作是Activity的组成部分,在尺寸比较大的屏幕,可以用Fragment来完成Activity中一部分.也叫碎片化
2.Fragment的生命周期
// 当Fragment创建之后, 交给Activity的时候,自动回调,这个方法调用时 Fragment还没有布局,还没有显示,通常这个方法用于设置Fragment接口回调.
onAttach()
// 当Fragment需要向Activity添加界面,或者是需要显示的时候执行
//
onCreate()
onCreateView()
// 如果当前Fragment通过<Fragment>添加到Activity的.当Activity的onCreate方法执行完返回之后,自动调用;; 如果是代码方式添加到Activity的,那么onCreateView之后,会自动调用这个方法. 用于初始化Fragment中的参数.初始化的最后一个地方.
onActivityCreated()
// Fragment 和Activity没有任何关系了, 也是最后一个周期方法,释放各种资源,
// 当使用replace()时, 旧的的Fragment进入到detach状态,
onDetach()
3.使用Fragment
在设计类似于微信的有底部bar,点击切换Fragment的情况
主流的 底部Tab切换页面的设计方式,就是 中间一个FrameLayout.
底部 RadioGroup,切换时,替换FrameLayout中的Fragment
使用时注意的地方:
1.将每一个使用到的Fragment定义成成员变量,在onCreate方法中初始化.
2.内部添加、删除、替换Fragment,必须要使用 FragmentManager.beginTransaction() 来开启,注意在最后commit();
3.事务每次操作之前必须重新开启,不允许使用成员变量的方式
4. 每一个Fragment可以通过两种方式来添加到Activity
// 1) 使用<fragment>
标签直接添加到Activity;
// 2) 使用代码来添加Fragment,使用 FragmentManager, FragmentTransaction
5.在使用Fragment时,在它的onCreateView中 ,可以设置控件的内容、开启线程、连接网络
4.创建一个Fragment:
Fragment 的创建步骤:
* 1. 继承Fragment 一定是V4包的
* 2. 必须有且仅有一个无参的构造方法(谷歌建议并且强制,内部机制还不了解啦....)
* 3. 如果Fragment需要显示界面,需要重写 onCreateView 方法
* 4. 指定布局资源,或者创建布局,返回即可
public class PersonalFragment extends Fragment {
public PersonalFragment() {
// Required empty public constructor
}
// 在onCreateView中写我们要执行的操作.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_persnal, container, false);
}
}