Fragment和Activity

相信学习过Android的童鞋们都对Fragment和Activity非常熟悉了。这里我们就不准备论述Fragment和Activity的具体定义,用法以及概念。

理解两个之间的区别的时候,只需要了解一个问题,就是Fragment能做到的Activity可以做到吗?可以做到的话没有问题,不可以做到的话,为什么不可以呢?这个就是他们之间的区别。

首先我们先来看一下Fragment的生命周期。

我们再来看一下Activity的生命周期。

这个方面我们不必多说。接下来我们来看他们的异同点。

1.Fragment显的更加灵活。可以直接在XML文件中添加,Activity则不可以。

2.Fragment可以在一个界面上替换一部分界面,Activity不可以,做不到。

3.Fragment和Activity之间的通信(控件之间的相互操作)。

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

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

Activity控制Fragment:XXXFragment fragment = getFragmentManager().findFragmentById();

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

4.Fragment和Activity中控件的加载。

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

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

5.动态加载Fragment。

首先,监听你的按钮。

1)创建待加载的fragment的实例。

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

3)调用Manager的BeginTransation()。

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

5)Commit事务。

6)碎片的生命周期。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容