fragment和activity之间的区别

首先这里不准备论述fragment和activity的具体定义,用法和概念。只是建立在了解这两个东西的基础上谈区别。

在理解二者之间的区别的时候,只需要不断的问自己一个问题,就是fragment能做到的Activity能做到吗?可以做到的话没问题,不可以做到的话,为什么不可以呢?这个为什么就是区别。先来看两者的生命周期,这个不必多说。

1.fragment显得更加灵活。可以直接在XML文件中添加<fragment/>,Activity则不能。

eg:

<fragment

Android:id="@+id/left_fragment"

Android:name="com.example.fragmenttest.LeftFragment"

…/>

<fragment

Android:id="@+id/right_fragment"

Android:name="com.example.fragmenttest.rightFragment"

…/>

2.可以在一个界面上灵活的替换一部分页面,活动不可以,做不到。

替换的时候注意要将这个fragment放在返回栈上。

3.fragment和Activity之间的通信:(也就是控件的相互操控)

fragment控制fragment:得到一个Activity,然后通过这个Activity的getFragmentManager()获得该Fragment的实例。

fragment控制Activity:这个很简单。每个Fragment都有getActivity()得到一个活动。MainActivity activity=getActivity();

Activity控制fragment:xxxFragment xxx=getFragmentManager().findFragmentById();

Activity控制Activity:这个显然是通过Intent活动之间的通信完成。别忘了在被打开的活动中创建Intent和得到Intent一起进行,写个静态的actionStart()。

4.fragment和Activity中控件的加载

Fragment的载入是通过OnCreateView的时候通过inflater.inflate()加载布局,然后通过修改main.xml,在main.xml上增加注册fragment标签,然后通过android:name来载入你已经通过inflater加载的隐藏布局。

有几个关键点:fragment是通过inflater加载View然后在main.xml中注册得到的。当然如果你可以在fragment中得到View那就可以通过View.findViewId()来操控fragment上的具体控件。

5.动态加载不同的fragment:

首先,监听你的按钮。

1.创建待加载fragment的实例

2.得到FragmentManager,在活动中可以直接调用getFragmentManager()方法获得。

3.调用Manager的BeginTansation()

4.用replace()改变不同的Fragment

5.commit事务。

6.碎片的生命周期

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值