首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android入门教程 | Fragment 基础概念

您只需指定要将片段放入哪个 ViewGroup。 如要在 Activity 中执行片段事务(如添加、移除或替换片段),则必须使用 FragmentTransaction 中的 API。...执行Fragment事务 在 Activity 中使用片段的一大优点是,可以通过片段执行添加、移除、替换以及其他操作,从而响应用户交互。...向 FragmentTransaction 添加更改的顺序无关紧要,不过: 必须最后调用 commit()。 如果要向同一容器添加多个片段,则添加片段的顺序将决定它们在视图层次结构中出现的顺序。...一个 Fragment 容器中只能添加一个 Fragment 种类,如果多次添加则会报异常,导致程序终止, replace 则无所谓,随便切换。...onCreateView并不是一定会被调用,当添加的是没有界面的Fragment就不会调用,比如调用FragmentTransaction的add(Fragment fragment, String tag

3.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

从0系统学Android--4.1探究碎片

初级阶段内容参考《第一行代码》 第四章:手机平板要兼顾--探究碎片 平板电脑和手机最大的区别就在于屏幕的大小,一般手机的屏幕大小会在 3 英寸到 6 英寸之间,一般平板电脑屏幕大小会在 7 英寸到 10...4.1 碎片是什么 碎片(Fragment)是一种可以嵌入到 Activity 中的 UI 片段,让程序更加合理和充分利用屏幕的空间。...可以是如果在平板上也这样设计,那么新闻标题列表就会给拉伸的很长,新闻的标题一般都不会太长,这样设计就会导致页面不合理。...开启一个事务,通过调用 beginTransaction() 方法开启 向容器中添加或者替换掉已经添加的碎片,一般使用 replace() 就可以了。 提交事务,调用 commit() 方法来完成。...FragmentTransaction 中提供了一个 addToBackStack() 方法,可以用于将一个事务添加到返回栈中。

62620

Fragment初识

例如:新闻应用可以使用一个片段在左侧显示文章列表,使用另一个片段在右侧显示文章—两个片段并排显示在一个 Activity 中,每个片段都具有自己的一套生命周期回调方法,并各自处理自己的用户输入事件。...也就是说,由于每个片段都会通过各自的生命周期回调来定义其自己的布局和行为,您可以将一个片段加入多个 Activity,因此,您应该采用可复用式设计,避免直接从某个片段直接操纵另一个片段。...于是乎,v4包就这样应运而生了, 最低可以兼容到1.6版本!...Fragment事务:对Fragment进行添加、移除、替换或执行其它动作,提交给Activity的每一个变化。...在事务中,我们可以对Fragment进行的操作以及对应的方法如下: 添加:add() 移除:remove() 替换:replace() 提交事务:commit() 上面几个是比较常用的,还有attach

1.2K20

Android开发笔记(六十七)嵌入页面的碎片

Fragment 概念 Android从3.0之后引入了Fragment,可以把它理解为页面的一个片段,比如一个html网页就包含一个header头部片段,以及一个body身体片段。...设计Fragment的目的是让页面布局更加灵活,不但可以随意组装和拼接各个片段,还可以只更新某个片段实现页面局部更新的功能(这个类似网页的ajax技术)。...这样,每次获取Fragment实例,都是调用newInstance方法获得,不是调用它的构造函数。...该事务的对象可从FragmentManager的beginTransaction方法获得,下面是FragmentTransaction的常用方法: add : 添加碎片 replace : 替换碎片...无则添加,有则替换 remove : 移除碎片 addToBackStack : 加入一个回退栈。这是为了在用户按下返回键时,能够回到上一个页面。

1.3K60

Fragment添加、删除、替换

前面一起学习了Fragment的创建和加载,以及其生命周期方法,那么接下来进一步来学习Fragment的具体使用,本期先来学习Fragment添加、删除、替换。...02FragmentTransaction 如果需要添加、删除、替换Fragment,则需要借助于FragmentTransaction对象,FragmentTransaction 代表 Activity...FragmentTransaction类常用的方法有以下几个: add(int containerViewId, Fragment fragment, String tag):将一个Fragment实例添加到...(); }} 主要就是为3个按钮设置监听事件,其中第一个按钮为后2个容器添加Fragment,第二个按钮移除第一个容器的Fragment,第三个按钮将容器2里面的Fragment替换...通过上面的操作相信你应该简单知道如何添加、移除和替换Fragment了。这里有个值得注意的问题是很多同学分不清add操作和replace操作,接下来继续在上面的案例基础上进行修改验证。

10.9K80

Android:多个Fragment切换问题切换动画设置

Fragment切换 要实现Fragment的切换,使用FragmentManager类来管理fragment,对fragment的操作(添加、删除、替换等)称为一个事务,通过FragmentTransaction...(类似数据库中的事务概念) 几个关键方法 add() :添加 hide() :隐藏 show() :显示 replace() :替换 关于Fragment 生命周期/事物管理的更详细的信息可参考这篇博文...Fragment的基本应用 简要来说,实现fragment切换主要步骤为: 1.实例化对象fragmentTransaction 2.隐藏当前已显示的fragment 3.对需要动态添加的fragment...进行判断,如果没有,使用add添加;如果已有,直接显示。...这里我遇到了一个小问题,使用add进行添加后,并不能完成切换,但替换成replace之后便可实现切换,具体原因待考究。

5.5K51

android之Fragment(官网资料翻译)

在Activity运行过程中,可以添加、移除或者替换Fragment(add()、remove()、replace()) Fragment可以响应自己的输入事件,并且有自己的生命周期,当然,它们的生命周期直接被其所属的宿主...添加一个无UI的fragment 之前的例子展示了对UI的支持, 如何将一个fragment添加到activity.然而,也可以使用fragment来为activity提供后台行为不用展现额外的UI...要添加一个无UI的fragment, 需要从activity使用 add(Fragment, String)来添加fragment (为fragment提供一个唯一的字符串”tag”, 不是一个view...处理Fragment事务 关于在activity中使用fragment的很强的一个特性是:根据用户的交互情况,对fragment进行添加,移除,替换,以及执行其他动作.提交给activity的每一套变化被称为一个事务...添加变化到 FragmentTransaction的顺序不重要, 除以下例外: 必须最后调用 commit().

59020

安卓-碎片的使用入门

第四章-Android开发中的碎片 4.1 碎片是什么 碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用得非常广泛。...fragment控件,实际上其通过:android:name="com.example.fragmenttest.LeftFragment"指向了类文件:LeftFragment.java,(我们不是通过...(4) 向容器内添加替换碎片,一般使用replace() 方法实现,需要传入容器的id和待添加的碎片实例。 (5) 提交事务,调用commit() 方法来完成。  ...其实很简单,FragmentTransaction中提供了一个addToBackStack() 方法,可以用于将一个事务添加到返回栈中,修改MainActivity中的代码,如下所示: public class...这样碎片完整的生命周期你也体验了一遍,是不是理解得更加深刻了?

1.3K20

Fragment回退栈及弹出方法

默认情况下,Fragment事务是不会加入回退栈的,如果想将Fragment加入回退栈并实现事物回滚,首先需要在commit()方法之前调用事务的以下方法将其添加到回退栈中: addToBackStack...这里在Fragment添加、删除、替换案例的基础来进行学习,布局代码和Fragment代码不变,只需要在MainActivity的onClick方法中增加一行代码即可,代码如下: public class...fragmentTransaction = fragmentManager.beginTransaction(); // Fragment操作 switch...(null); // 提交事务 fragmentTransaction.commit(); }} 重新运行程序...二、弹出回退栈 Fragment的回退非常简单,然而这里又会出现一个新的问题,就是在修改后的案例每次只能回退到上一步操作,并不能一次性回退到我们想要的位置,这样才更满足实际开发需要。

4.2K70
领券