1.5_Android Training 学习笔记_Fragment
2016-09-18 09:44
357 查看
Fragment知识概要
Fragment可以作为Activity界面的一部分组成出现
可以在一个Activity中同事出现多个Fragment,并且一个Fragment也可以在多个Activity中使用
在Activity运行过程中,可以添加、移除或替换Fragment
Fragment可以响应自己的输入时间,并且有自己的生命周期,它们的生命周期会受宿主Activity的生命周期影响
onCreateView() 方法
Fragment第一次绘制它的用户界面的时候,系统会调用此方法,为了绘制Fragment的UI,此方法必须返回一个View,如果不显示UI,返回null即可
Fragment加载方式
静态加载
在Activity的layout文件中声明Fragment,需要特别注意的是中的android:name属性指定了在layout中实例化的Fragment类
标识Fragment的方法
android:id 属性提供一个唯一ID
android:tag属性提供一个唯一字符串
动态加载
用一个 FrameLayout 承载
getFragmentManager().popBackStack();
这样话在fragment中后退
Fragment的生命周期
当通过XML布局文件的方式将Fragment添加进activity时,Fragment是不能被动态移除的。如果想要在用户交互的时候把fragment切入与切出,必须在activity启动后,再将fragment添加进activity。
替换fragment的过程类似于添加过程,只需要将add()方法替换为 replace()方法。
记住在执行fragment事务时,如移除或者替换,我们经常要适当地让用户可以向后导航与”撤销”这次改变。为了让用户向后导航fragment事务,我们必须在FragmentTransaction提交前调用addToBackStack()方法
Fragment 之间的交互
为了让fragment与activity交互,可以在Fragment类中定义一个借口,并在activity中实现。Fragment在他们的生命周期的onAttach()方法中获取接口的实现,然后调用接口的方法与Activity交互。
对3中的步骤不是很清楚,应该是获取这个activity然后向下转型得到mycall吧。。。
当移除或者替换一个fragment并把它放入返回栈中时,被移除的fragment的生命周期是stopped(不是destoryed).当用户返回重新恢复这个fragment,它的生命周期是restarts。如果没有把fragment放入返回栈中,那么当它被移除或者替换时,其生命周期是destoryed。
fragment 之间传递数据
ita 在类开始处定义好。
Fragment可以作为Activity界面的一部分组成出现
可以在一个Activity中同事出现多个Fragment,并且一个Fragment也可以在多个Activity中使用
在Activity运行过程中,可以添加、移除或替换Fragment
Fragment可以响应自己的输入时间,并且有自己的生命周期,它们的生命周期会受宿主Activity的生命周期影响
onCreateView() 方法
Fragment第一次绘制它的用户界面的时候,系统会调用此方法,为了绘制Fragment的UI,此方法必须返回一个View,如果不显示UI,返回null即可
Fragment加载方式
静态加载
在Activity的layout文件中声明Fragment,需要特别注意的是中的android:name属性指定了在layout中实例化的Fragment类
标识Fragment的方法
android:id 属性提供一个唯一ID
android:tag属性提供一个唯一字符串
动态加载
用一个 FrameLayout 承载
getFragmentManager().popBackStack();
这样话在fragment中后退
Fragment的生命周期
当通过XML布局文件的方式将Fragment添加进activity时,Fragment是不能被动态移除的。如果想要在用户交互的时候把fragment切入与切出,必须在activity启动后,再将fragment添加进activity。
替换fragment的过程类似于添加过程,只需要将add()方法替换为 replace()方法。
记住在执行fragment事务时,如移除或者替换,我们经常要适当地让用户可以向后导航与”撤销”这次改变。为了让用户向后导航fragment事务,我们必须在FragmentTransaction提交前调用addToBackStack()方法
Fragment 之间的交互
为了让fragment与activity交互,可以在Fragment类中定义一个借口,并在activity中实现。Fragment在他们的生命周期的onAttach()方法中获取接口的实现,然后调用接口的方法与Activity交互。
1、在fragment中定义如下 public interface mCallBack{ public void myCall(); } 2、在activity中实现这个`myCall()` 方法 3、在fragment中获取activity Activity activity = getActivity(); mycall = (mCallBack)activity; 4、然后就可以在fragment中调用这个方法了 mycall.myCall();
对3中的步骤不是很清楚,应该是获取这个activity然后向下转型得到mycall吧。。。
当移除或者替换一个fragment并把它放入返回栈中时,被移除的fragment的生命周期是stopped(不是destoryed).当用户返回重新恢复这个fragment,它的生命周期是restarts。如果没有把fragment放入返回栈中,那么当它被移除或者替换时,其生命周期是destoryed。
fragment 之间传递数据
1、 afragment = new afragment(); Bundle args = new Bundle(); args.putInt("a", 2); 2、 ita =getArguments().getInt("a");
ita 在类开始处定义好。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories