android fragment
2015-12-20 06:51
246 查看
Fragment的生命周期
onAttach(Activity)
当Fragment与Activity发生关联时调用。
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法返回时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被取消时调用
Fragment常用的三个类:
android.app.Fragment 主要用于定义Fragment
android.app.FragmentManager 主要用于在Activity中操作Fragment
android.app.FragmentTransaction 保证一些列Fragment操作的原子性
Fragment常用的API
获取FragmentManage的方式:
getFragmentManager()
FragmentTransaction的方法:
transaction.add()
往Activity中添加一个Fragment
transaction.remove()
从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈
,这个Fragment实例将会被销毁
transaction.replace()
使用另一个Fragment替换当前的,实际上就是remove()然后add()
transaction.hide()
隐藏当前的Fragment,仅仅是设为不可见
transaction.show()
显示之前隐藏的Fragment
detach()
会将view从UI中移除,和remove()不同,此时fragment的状态依然由FragmentManager维护
attach()
重建view视图,附加到UI上并显示。
transatcion.commit() //提交一个事务
FragmentTransaction.addToBackStack(String)
添加一个Fragment事务到回退栈
注意:
Activity状态不一致:State loss这样的错误。主要是因为:commit方法一定要在Activity.onSaveInstance()之前调用。
Fragment与Activity通信:
1:Activity中包含自己管理的Fragment的引用,可以通过引用直接访问所有的Fragment的public方法
2:
每个Fragment都有一个唯一的TAG或者ID,可以通过
3:
Fragment中可以通过getActivity得到当前绑定的Activity的实例,然后进行操作
Fragmeny与ActionBar和MenuItem集成:
1:
在Fragment的onCreate中调用 setHasOptionsMenu(true);
2:
在Fragment子类中实现onCreateOptionsMenu
3:
在Fragment中处理MenuItem的点击,也可以实现onOptionsItemSelected;(Activity也可以直接处理该MenuItem的点击事件)
没有布局的Fragment的作用:
[b]没有布局文件Fragment实际上是为了保存,当Activity重启时,保存大量数据准备的[/b]
动态,静态使用fragment:
/article/1336252.html
onAttach(Activity)
当Fragment与Activity发生关联时调用。
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法返回时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被取消时调用
Fragment常用的三个类:
android.app.Fragment 主要用于定义Fragment
android.app.FragmentManager 主要用于在Activity中操作Fragment
android.app.FragmentTransaction 保证一些列Fragment操作的原子性
Fragment常用的API
获取FragmentManage的方式:
getFragmentManager()
FragmentTransaction的方法:
transaction.add()
往Activity中添加一个Fragment
transaction.remove()
从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈
,这个Fragment实例将会被销毁
transaction.replace()
使用另一个Fragment替换当前的,实际上就是remove()然后add()
transaction.hide()
隐藏当前的Fragment,仅仅是设为不可见
transaction.show()
显示之前隐藏的Fragment
detach()
会将view从UI中移除,和remove()不同,此时fragment的状态依然由FragmentManager维护
attach()
重建view视图,附加到UI上并显示。
transatcion.commit() //提交一个事务
FragmentTransaction.addToBackStack(String)
添加一个Fragment事务到回退栈
注意:
Activity状态不一致:State loss这样的错误。主要是因为:commit方法一定要在Activity.onSaveInstance()之前调用。
Fragment与Activity通信:
1:Activity中包含自己管理的Fragment的引用,可以通过引用直接访问所有的Fragment的public方法
2:
每个Fragment都有一个唯一的TAG或者ID,可以通过
3:
Fragment中可以通过getActivity得到当前绑定的Activity的实例,然后进行操作
Fragmeny与ActionBar和MenuItem集成:
1:
在Fragment的onCreate中调用 setHasOptionsMenu(true);
2:
在Fragment子类中实现onCreateOptionsMenu
3:
在Fragment中处理MenuItem的点击,也可以实现onOptionsItemSelected;(Activity也可以直接处理该MenuItem的点击事件)
没有布局的Fragment的作用:
[b]没有布局文件Fragment实际上是为了保存,当Activity重启时,保存大量数据准备的[/b]
动态,静态使用fragment:
/article/1336252.html
相关文章推荐
- Android内核之FrameWork学习
- Android学习笔记(22):AdapterView与Adapter
- 喝酒不骑马的Android自学日记(9)-Spinner的实例
- 从一个动漫设计师的梦想到android软件开发工程师的转变
- Android中实用小技巧集锦
- Android Studio使用lambda
- Android设置虚线、圆角、渐变
- android自定义滑动开关控件,适合所有的android系统 《转载》
- android数据存储的选择
- Android之JNI的使用
- 结合volley实现图片三级缓存
- 记录Android学习之路
- 加速Gradle构建项目
- 报错:Could not find method android.view.ViewTreeObserver.removeOnGlobalLayoutListener
- Android 之一张图片搞定数据加载进度条+各种颜色效果,任性的不得了
- Android开发必知的50个诀窍之一
- [Android Studio] Gradle
- Handler消息传递机制一
- Android Studio搭建Android集成开发环境
- android中滚动方法的讲解