android之Fragment基础详解(一)
2016-12-27 19:14
330 查看
一、Fragment的设计哲学
Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上——例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。
针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。
下图是文档中给出的一个Fragment分别对应手机与平板间不同情况的处理图:
MyFragment4.java
测试顺序:启动fragment—>回到桌面—>回到应用—>切换fragment—>退出fragment
日志打印:
总结:
1)启动fragment
onAttach()—>onCreat()—>onCreateView()—>onActivityCreated()—>onStart()—>onResume()
2)锁屏
onPause()—>onStop()
3)解锁
onStart()—>onResume()
4)切换到其他的Fragment
第一个:onPause()—>onStop()—>onDestroyView()—>onDestroy()—>onDetach
第二个:onAttach()—>onCreat()—>onCreateView()—>onActivityCreated()—>onStart()—>onResume()
Fragment 与Activity通信
1)Fragment可调用getActivity()方法获取它所在的Activity
2)Activity可调用FragmentManager的findFragmentById()或findFragmentByTag()方法获取Fragment
Activity——>Fragment:在Activity中创建Bundle数据包,并调用Fragment的setArguments(Bundle bundle)方法
Fragment——>Activity:需要在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口。这样Fragment可调用该回调方法将数据传递给Activity
更详细也可以参考:http://www.itnose.net/detail/6396730.html
Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上——例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。
针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。
下图是文档中给出的一个Fragment分别对应手机与平板间不同情况的处理图:
MyFragment4.java
测试顺序:启动fragment—>回到桌面—>回到应用—>切换fragment—>退出fragment
日志打印:
总结:
1)启动fragment
onAttach()—>onCreat()—>onCreateView()—>onActivityCreated()—>onStart()—>onResume()
2)锁屏
onPause()—>onStop()
3)解锁
onStart()—>onResume()
4)切换到其他的Fragment
第一个:onPause()—>onStop()—>onDestroyView()—>onDestroy()—>onDetach
第二个:onAttach()—>onCreat()—>onCreateView()—>onActivityCreated()—>onStart()—>onResume()
Fragment 与Activity通信
1)Fragment可调用getActivity()方法获取它所在的Activity
2)Activity可调用FragmentManager的findFragmentById()或findFragmentByTag()方法获取Fragment
Activity——>Fragment:在Activity中创建Bundle数据包,并调用Fragment的setArguments(Bundle bundle)方法
Fragment——>Activity:需要在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口。这样Fragment可调用该回调方法将数据传递给Activity
更详细也可以参考:http://www.itnose.net/detail/6396730.html
相关文章推荐
- 【Android基础】Fragment 详解之Fragment生命周期
- Activity详解、Intent使用、Fragment详解-Android基础知识整理
- 【Android基础】Fragment 详解之Fragment生命周期
- Android基础之Fragment与Activity交互详解
- 【Android基础】Fragment 详解之Fragment介绍
- Android基础使用之Fragment详解一
- Android基础——Fragment详解
- 【Android基础】Fragment 详解之Fragment介绍
- Android基础之Fragment与Activity交互详解
- Android基础之Fragment与Activity交互详解
- android Fragments详解二:创建Fragment
- android Fragments详解二:创建Fragment
- android基础总结篇之九:Intent应用详解 .
- android Fragments详解四:管理fragment
- android Fragments详解二:创建Fragment
- 【Android 基础】TextView的属性详解
- jni使用基础(三)之Android.mk文件详解
- 【android基础】之ImageView xml详解
- android Fragments详解四:管理fragment
- Android中3D技术基础详解 ---制作一个可旋转的立方体