1.5_Android Training 学习笔记_Fragment

Fragment知识概要

  1. Fragment可以作为Activity界面的一部分组成出现
  2. 可以在一个Activity中同事出现多个Fragment,并且一个Fragment也可以在多个Activity中使用
  3. 在Activity运行过程中,可以添加、移除或替换Fragment
  4. 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 在类开始处定义好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值