使用Fragment还有这么几个方面优势: 代码复用。特别适用于模块化的开发,因为一个Fragment可以被多个Activity嵌套,有个共同的业务模块就可以复用了,是模块化UI的良好组件。...Activity用来管理Fragment。Fragment的生命周期是寄托到Activity中,Fragment可以被Attach添加和Detach释放。 可控性。...我们直接加一个LinearLayout起名为login_fragment LoginActivity ? 关键代码 ?...上面先定义了我们的账号登陆和手势登陆的Fragment,然后用一个CreateFrag来创建表头和表体碎片。 ? 然后定义一个Logintype为整型,用于区分当前的是账号登陆还是手势登陆。...然后SetLoginType函数就是用于根据不同的类型切换我们的fragment的效果。 ---- 账号登陆 fragment_login_input.xml ? ?
Fragment了,今天我们就来学习其中一个特别棒的应用技巧。...在开始之前,首先你必须已经了解Fragment的用法了,如果你对Fragment还比较陌生的话,建议先去阅读我前面的一篇文章 Android Fragment完全解析,关于碎片你所需知道的一切 。...然后要去创建对应这个布局的Fragment。...可以看到,首先第一步是调用clearSelection()方法来清理掉之前的选中状态,然后开启一个Fragment事务,并隐藏掉所有的Fragment,以防止有多个Fragment显示在界面上。...这是因为replace()方法会将被替换掉的那个Fragment彻底地移除掉,该Fragment的生命周期就结束了。
的概念,中文意思为碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示。...Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了。...需要掌握的知识点有:Fragment概要,生命周期,加载的方法(分静态和动态加载),Fragment与Activity之间的通信哦,掌握这些基础就OK了。...对于理解Fragment,可以说你在生活中看过的新闻,点击进入新闻详情界面。 女孩:Fragment有它自己的生命周期吗?...图片 4.Fragment和activity之间的通信 Fragment和activity之间的通信,FragmentManager的findFragmentById()方法来获取相应碎片的实例。
本章内容 Fragment介绍 创建Fragment 替换和移除Fragment Fragment与activity通信 Android...----------------------------------------------------------------------------------------------- 动态添加碎片的步骤...: 1.创建待添加的碎片对象; 2.获取FragmentManager的对象,使用getFragmentManager()方法得到; 3.开启一个事务,通过调用beginTransaction()方法开启.... 4.向容器内加入碎片,一般使用replace()方法开启,需要传入容器的id和待添加的碎片对象; 5.提交事务,调用commit()方法来完成。...在碎片中模拟返回栈,注意方法:addToBackStack(null);
Fragment初探 为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像Activity一样包含布局。...Fragment通常是嵌套在Activity中使用的,现在想象这种场景:有两个Fragment,Fragment 1包含了一个ListView,每行显示一本书的标题。...动态添加Fragment 你已经学会了如何在XML中使用Fragment,但是这仅仅是Fragment最简单的功能而已。...Fragment的生命周期 和Activity一样,Fragment也有自己的生命周期,理解Fragment的生命周期非常重要,我们通过代码的方式来瞧一瞧Fragment的生命周期是什么样的: public...如果想要切身体验一下Fragment的实战,请继续阅读 Android手机平板两不误,使用Fragment实现兼容手机和平板的程序 以及 Android Fragment应用实战,使用碎片向ActivityGroup
至于fragment的用法,fragment+viewpager的滑动切换代码请参考博文 Android基础:翻页控件Viewpager的使用方法,viewpager+fragment混合使用 fragment...与Activity 当在使用activity嵌套fragment,fragment再嵌套子fragment时,相当于有两层fragment,假设最外层为第一层,其中一个Fragment为ParentfragmentA...,该ParentFragmentA中又嵌套了三个fragment,也就是说第二层为ChildFragment1,ChildFragment2,ChildFragment3,如果想在其中一个子fragment...中的控件点击切换到同一层的另一个子fragment 如图,在第二层fragment中,child1fragment中有两个控件viewI和viewII,点击viewI可以切换到同一层的fragment...是另一个fragment的子fragment,则获取到的是父fragment的manager getChildFragmentManager方法:获取到外层fragment的子fragment的manager
坚持AUF(Always Use Fragment)原则,即总是使用Fragment。Fragment本身占用内存比Activity少很多,在流畅性,性能上具有很大的优势,尤其是在中低端手机上。...此外,如果你的应用需要移植到平板上的话,那使用Fragment更是你的不二之选。 3.是什么? Frament也叫碎片,片段。...如果我们不使用Fragment的情况,当应用运行在平板上面的情况,就只能显示放大版的手机显示的界面,为了利用平板的特性,Android在3.0版本中提供了Fragment技术,我们就可以将列表与内容以组件的方式插入..." /> fragment android:layout_width="0dp" android:layout_height="match_parent"..." /> 5.2 left_fragment.xml <?
---- 内碎片:内存固定分区的时候,会发生内碎片。因为内存固定分区中,一个作业占用一个或者几个分区,所以可能出现分配的分区大于所需要的内存空间,出现内碎片。但是固定分区不会出现外碎片。...外碎片:在动态分区过程中,动态分区过程一般使用匹配算法进行分配内存(最先匹配法,下次匹配法,最佳匹配法,最坏匹配法),这样在经过一段时间的分配回收后,内存中存在很多很小的空闲快。...这些空闲块被称为外碎片。 页式管理:解决了碎片问题,但不易实现共享,不便于动态链接。 因为尽快会出现内存碎片,但是碎片的大小不超过一个物理页的大小。
区别 二、Fragment的生命周期 三、Fragment的通信 四、Fragment的replace、add、remove 五、Fragment的管理器FragmentManager 一、Fragment...为何被称为第5大组件 1、为何称为第5组件 1)、fragment具有生命周期 2)、fragment比activity更节省内存,ui的切换效果也更加的舒适; 3)、但是fragment必须依附于...三、Fragment的通信 四、Fragment的replace、add、remove 1、add()是将Fragment实例添加到activity的Fragment队列的最上层 2、remove(...)是将Fragment实例从到activity的Fragment队列中删除 3、replace:内部线remove(实例会被回收掉)然后再add,会始终保持fragment栈中只有一个fragment...因为,detach不会回收fragment,但是会回收fragment中的view。atach会将fragment中的view重新创建。既不剩内存,也不提高性能。
Fragment可以看作是嵌套的Activity,类似ActivityGroup,但是开销肯定没有ActivityGroup那么大,每一个Fragment管理着一个View,Fragment彼此之间相互独立...然后当Activty进入运行状态onResume后,你可以独立的管理每一个Fragment,可以add一个Fragment,也可以remove一个Fragment。...在你执行一个Fragment事务的时候(创建并且显示出来),你可以把这个Fragment放到Fragment回退栈中,这个回退栈记录了所有你执行过的Fragment事务,用户在点击返回键的时候可以从Fragment...Fragment的生命周期: 如果你很清楚Activity的生命周期那么Fragment的生命周期就很容易理解,在Fragment中有很多类似Activity生命周期函数的回调方法,这些方法由Android...onCreateView(): 当Fragment需要第一次绘制用户界面的时候系统调用这个函数完成UI的绘制,你必须在这个函数返回一个View,这个View是Fragment的根View,如果你不想Fragment
Fragment 就是一个 Activity 布局的一部分,可以把 Activity 的一部分布局抽离出来到 Fragment 中,并且 Fragment 也可以执行逻辑。...就是把 Activity 复杂的内容抽离成几个碎片,然后拼凑起来,在 Activity 布局中,只需要引入各个不同的 Fragment 就可以 了。...Fragment 相关的三个类 Fragment 具体的 Fragment FragmentManager 是管理 Fragment 的 FragmentTransaction 通过事务来进行添加 Fragment...、隐藏、移除 等操作 Fragment 动作,事务保证了原子性 主要方法 transaction.add() 向 Activity 中添加 Fragment,只是添加 Fragment,不影响之前 Fragment..." /> 在代码中获取的这个 Fragment 通过 Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment
步骤: 1、在Activity布局文件中定义framelayout用于添加Fragment 2、创建两个Fragment用于切换 3、获取Fragment管理器,并开启事物FragmentTransaction...4、通FragmentTransaction.add(resource id, fragment)将fragment添加到布局上,提交事物commit 5、通FragmentTransaction....replace(resource id, fragment)切换显示的fragment,提交事物commit acvitity_dynamic.xml <Button android...fragment=blank; } transaction1.replace(R.id.fl_fragment,fragment);...transaction1.commit(); } }); Fragment中嵌套fragment问题 在fragment中使用viewpager嵌套fragment
##生命周期 onAttach()(Fragment被绑定到Activity时调用) —> onCreate()(Fragment创建) –> onCreateView()(创建和Fragment关联的...); } } 每一个fragment 都需要一个唯一的标识,如果activity重启,系统可以用来恢复fragment(并且你也可以用来捕获fragment 来处理事务,例如移除它.)..., firstFragment).commit(); } } } ##管理Fragment 要在activity中管理fragment,需要使用FragmentManager....activity 中存在的fragment 2....##Fragment与ViewPager搭配 FragmentStatePagerAdapter,会自动保存和恢复Fragment。
https://blog.csdn.net/lyhhj/article/details/51174973 绪论 Fragment 俗称 碎片,那么为什么会出现Fragment这个东西呢?...我们可以唉Activity中随意的使用Fragment,当你的一个界面业务逻辑很复杂的时候,我们可以将逻辑写到Fragment中,这样就不必在Activity写一堆控件的事件处理的代码了,Fragment...Fragment使用 Fragment使用分为两种:静态和动态 静态使用Fragment 所谓静态使用指的就是将自定义的Fragment写到xml布局文件中,利用fragment>fragment...动态使用Fragment 动态使用Fragment就是手动在代码中添加、更新、删除Fragment。...下面我们来看一下在使用Fragment时遇到的那些坑吧: 对于FragmentManager我们应该知道它的作用,它用来维护Fragment队列,以及Fragment事务的回退栈。
**/ public void addFragment(Fragment fragment) { FragmentTransaction ft = this.getSupportFragmentManager...().beginTransaction(); ft.add(R.id.show_layout, fragment); ft.commit(); } /** 删除Fragment **/...public void removeFragment(Fragment fragment) { FragmentTransaction ft = this.getSupportFragmentManager...(Fragment fragment) { FragmentTransaction ft = this.getSupportFragmentManager().beginTransaction();...fragment) { try { btnCallListener = (IBtnCallListener) fragment; } catch (Exception e) { }
运行状态:碎片可见时,关联活动处于运行状态,其也为运行状态 暂停状态:活动进入暂停状态,相关联可见碎片就会进入暂停状态 停止状态:活动进入停止状态,相关联碎片就会进入停止状态,或者通过FragmentTransaction...的remove()、replace()方法将碎片从从活动中移除,但如果在事务提交之前调用addToBackStack()方法,这时的碎片也会进入到停止状态。...销毁状态:当活动被销毁,相关联碎片进入销毁状态。...或者调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但在事务提交之前并没有调用addToBackStack()方法,碎片也会进入到销毁状态。...在介绍Fragment的具体使用时,先介绍一下Fragment的几个核心类 Fragment:Fragment的基类,任何创建的Fragment都需要继承该类 FragmentManager:管理和维护
android:layout_height="match_parent" android:layout_weight="1"/> 动态添加碎片...// 建立的Fragment replaceFragment(new RightFragment()); private void replaceFragment(Fragment fragment...transaction.replace(R.id.right_layout, fragment); transaction.commit(); } 在碎片中模拟返回栈 fragmentTransaction.addToBackStack...(null); 活动跟碎片通信 LeftFragment fragment = (LeftFragment) getFragmentManager().findFragmentById(R.id.left_fragment...); 碎片跟活动通信 MainActivity activity = (MainActivity) getActivity(); 碎片跟碎片通信 MainActivity activity = (MainActivity
另外不建议在Fragment里面 嵌套Fragment因为嵌套在里面的Fragment生命周期不可控!!!...和replace的参数是Fragment,这个Fragment目标Fragment一致 注意:Activity动态的添加Fragment必需有一个容器View来容纳Fragment的layout布局 操作步骤..., * 因为fragment本身就是Activity的一部分(“碎片”/“片段”); * 因为Activity和fragment要从fragment的onActivityCreate...组件获取 Activity中获取Fragment,以及Fragment中的组件 获取Fragment 当fragment被提交之后,【fragmentTransaction.commit()提交fragment.../** * 可以直接通过findViewById()获取fragment的组件, * 因为fragment本身就是Activity的一部分(“碎片
可以通过在Activity的layout中使用 定义Fragment子类 类似定义Activity那样,通过继承Fragment类来定义一个fragment类型。...Fragment的管理 上面简单的在代码中添加了一个Fragment到当前Activity。这里对可以针对Fragment执行的各种操作进行总结。...hide(Fragment fragment) 当参数fragment的View已经添加到布局容器中时,可以通过此方法来隐藏对应的View。...fragment) Remove an existing fragment....here. show (Fragment fragment) Shows a previously hidden fragment.
Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似。 ...Fragment是用来描述一些行为或一部分用户界面在一个Activity中, (1)你可以合并多个fragment在一个单独的activity中建立多个UI面板, (2)同时重用fragment在多个activity...处理Fragment的生命周期 宿主activity的声明周期直接影响到fragment的生命周期。 ...onCreate() 当fragment创建时被调用,你应该初始化一些实用的组件,比如在fragment暂停或停止时需要恢复的 onCreateView() 当系统调用fragment在首次绘制用户界面时...例如,一个新闻显示应用在一个activity中有两个fragment,一个fragment A显示文章题目的列表,一个fragment B显示文章。