Android开发之Fragment基本总结

Android开发之Fragment基本总结

1.Fragment的基本原理:

Fragment的用法主要是那些?

1.可以利用Fragment实现“选项卡切换”和“底部导航栏”页面切换;

2.Fragment是在Android3.0引入,主要为了大屏幕安卓设备UI展示问题;通俗点理解就是一套UI布局自适应不同屏幕大小的安卓设备,而不用针对不同设备另外开发一套UI布局;

如上图所示布局,如果采用Activity布局来对上面进行布局,则需要分别针对平板和手机开发两套UI布局;这时只要通过Fragment就可以一套UI布局就可以自适应两款不同设备;通俗点将就类似于前端的“响应式原理”(一套代码,兼容不同设备);

在英文翻译中Fragment是指分段(将内容分段);我觉得分段这词比较贴近Fragment的作用;可以将Activity中用Fragment组件多窗格UI布局;以及在多个Activity中使用同个Fragment;所以Activity和Fragment的关系总结就是:一个Activity对应多个Fragment,多个Activity对应一个Fragment;同时Fragment和Activity一样拥有自己的生命周期。如下图所示;

Fragment生命周期方法比较多,而通过Android Studio生成的Fragment只有如下几个生命周期,并不是表示Fragment就只有下面几个,只是重写了下面几个而已;如下图所示;

我们只讲解通过Android studio生成Fragment重写的生命周期方法:

1.oncreate():在创建Fragment时开始调用,这里还没有开始创建并绘制布局(注意这里创建和绘制是两个不同的动作);

2.onCreatView():将xml布局文件通过LayoutInflater创建成布局对象,也就创建Fragment布局时开始调用,并返回创建的布局对象;

3.onAttach():由于Fragment必须关联Activity中,也就是说Fragment不能独立存在;所以onAttach方法是在Fragment关联Activity时开始调用,它与onDetach()相对应;

4.onDetach():Fragment和Activity取消关联时开始调用;

2.Fragment的基本用法:

1.通过XML布局文件中的fragment标签静态引入Fragment;

注意事项:1.一定要给fragment标签设置id,否则会程序会闪退;2.静态引入必须依赖android.app.Fragment包,注意不是android.support.v4.app.Fragment包,不然又是闪退;当1和2同时成立才能正常运行;

什么android.app和android.support.v4.app有什么不同?

支持的兼容性不同:

android.app 兼容的最低版本是android:minSdkVersion="11" 即3.0版

android.support.v4.app 兼容的最低版本是android:minSdkVersion="4" 即1.6版

2.可以再Activity中进行动态引入Fragment;

讲解动态引入之前,先解释下事务,事务是指要做的或所做的事情,它是由开始事务和结束事务之间所有操作组成;

以上在Activity的生命周期函数onCreate中使用getSupportFragmentManager()来开启FragmentTransaction事务进行动态加入Fragment的;当然也可以通过relace()方法替代add()方法动态加入Fragment;

2.getFragment()和getSupportFragment()方法区别?

1.getFragmentManager()需要依赖于android.app相关的包下面的包,同时的Fragment类中继承的Fragment也要一致依赖android.app相关的包,保持包的一致性;如下图所示:

2.getSupportFragmentManager需要依赖android.support.v4.app相关的包,它相关的Fragment类也需要依赖同版本的包;跟上面的一样需要保持包的一致性;

猜你喜欢

转载自blog.csdn.net/u012475786/article/details/86609044