简述Fragment的作用

简述Fragment的作用,第1张

Fragment 是什么

今天我们来学习一个比较重要的组件--Fragment。Fragment在应用开发中应用得非常的频繁,特别是在开发一些需要兼容手机设备、平板设备和智能电视等大屏幕设备的应用,Fragment发挥着重要的作用。那说了这么多,Fragment到底是什么呢?在这里我们先简单的用一句话总结就是:Fragment是Android为了应用适配不同设备的大屏幕、支持更加动态和灵活的UI设计所提供的一个组件。

说到Fragment,就会联想到Activity,因为Fragment对象在应用中一般是不能独立存在的,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。例如:当activity暂停时,他拥有的所有的Fragment都暂停了,当activity销毁时,他拥有的所有Fragment都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),可以单独地 *** 作每个Fragment,比如添加或删除它们。当中执行上述针对Fragment的事务时,可以将事务添加到一个栈中,这个栈被activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航)。

当向activity中添加一个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment自己的界面。可以在layoutxml布局文件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加入到ViewGroup控件中。然而,Fragment不一定非要放在activity的界面中,它可以隐藏在后台为activity工作。

Android在30之后引入了Fragment的概念,主要目的是用在大屏幕设备-例如平板电脑上,以便支持更加动态和灵活的UI设计。平板电脑的屏幕尺寸比手机大得多,因此有更多的空间来存放更多的UI组件,并且这些组件之间会产生更多的交互。Fragment允许这样的一种设计,而不需要你亲自来管理viewhierarchy的复杂变化。通过将Activity的布局分散到Fragment中,你可以在运行时修改Activity的外观,并在由Activity管理的Back

stack中保存那些变化。

例如,一个新闻应用可以在屏幕的左侧使用一个Fragment来展示一个文章的列表,然后在屏幕右侧使用另一个Fragment来展示一篇文章,两个Fragment并排显示在相同的一个Activity中,并且每一个Fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输入事件。因此,取代使用一个activity来选择一篇文章而另一个activity来阅读文章的方式,用户可以在同一个activity中选择一篇文章并且阅读,如图所示

详细

首先是Fragment的文件

activity_fragment_tabxml

接下来是主Activity的布局文件

activity_fragment_tabxml

Fragment的类文件

ContextFragmentjava

Activity的类文件

FragmentTabActivityjava

第一步、需要先获取FragmentManager,该对象可以对Fragment进行管理

第二步、获得FragmentTranscation,FragmentManage对Fragment的一系列事务 *** 作主要由FragmentTranscation来执行

第三步、实例化Fragment,这步没什么好说的

第四步、将Fragment添加到容器中,这里用的是add()方法,其中replace()也可以实现,目前还没有了解这两个方法的区别

第五步、用Bundle来通信,实现向Fragment传递数据,这里主要传的是文本的值

第六步、提交事务,如果忘了这一步,之前所做的都没有效果,就跟执行更新数据,却没有提交一样

第一步、需要先获取FragmentManager,该对象可以对Fragment进行管理

第二步、获得FragmentTranscation,FragmentManage对Fragment的一系列事务 *** 作主要由FragmentTranscation来执行

显示Fragment

隐藏Fragment

最后一步、提交事务

需要做的准备

新建一个android项目,主Activity命名为MainActivity

创建三个Fragment1 Fragment2 Fragment3

为三个Fragment创建三个布局文fragment1xml、fragment2xml、fragment3xml

布局 activity_mainxm

fragment1xml样例

Fragment1样例

另外的可以根据样例进行修改

activity_mainxml内容

activity打开时我们需要显示一个fragment,也就是需要先向容器中添加一个fragment

这是就能显示第二个fragment了,那么如何切换不同的fragment呢,切换的过程如下

开启事务

调用事务的replace方法,将当前容器的fragment替换为新的fragment

提交事务

初始化时显示的是 fragment2

实践1 :fragment2------点击按钮frag1-----按返回键--------退出应用

实践2: fragment2-----点击按钮frag3 -----按返回键--------返回到fragment2

为啥会出现上面的情况,原因就是切换到fragment3时,调用了addToBackStack方法,这时会将fragment2先入栈,然后再切换到fragment3,按返回键的时候fragment3销毁,fragment2出栈显示,而切换到fragme1时没有将fragme2入栈,所以fragment2就直接销毁了,再按返回键就直接退出应用了。

访问fragment 1、fragment初始化时,可以通过setArguments的方式 2、fragment初始化完成后,可以通过fragment里面的自定义方法访问 访问activity 1、可以通过getActivity()方法的方式访问 2、定义回调接口进行访问

以上就是关于简述Fragment的作用全部的内容,包括:简述Fragment的作用、Android碎片Fragment之多标签切换效果(微信和QQ底部多标签切换)、android 怎么开启fragment等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9660113.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存