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

【Android基础】Fragment 详解之Fragment介绍

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

1.3K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android基础】Fragment 详解之Fragment生命周期

    onDestroyView(): 当与Fragment关联的那个View(在onCreatView()方法中创建的)与Fragment解除关联,从View树中移除的时候调用,在下次Fragment需要显示一个...Stopped: Fragment不再可见,此时的情形可能是Fragment所在的Activity已经stopped了,或者fragment从Activity中移除到Fragment回退栈中。...与Activity类似,你可以利用Bundle来记录Fragment的状态,当Activity被销毁需要记录Fragment状态,并且在Activity重新创建的时候恢复Fragment的状态。...上面说的都是Fragment的一些生命周期相关知识,下面来看看如何创建Fragment并且添加一个View给Fragment。...以上就是Fragment的生命周期和如何创建一个Fragment的View

    2.5K80

    【Android 应用开发】 Fragment 详解

    方式 : Fragment 添加到 Activity 中才能显示, 以下是将 Fragment 嵌入 Activity 的方式; -- 布局文件嵌入 : 在布局文件中 使用 Fragment /> 元素...Fragment 与 Activity 通信 Fragment 获取 Activity : 调用 Fragment 对象的 getActivity()方法, 即可获取 Fragment 嵌入的 Activity...对象; Activity 获取 Fragment :  -- Fragment 属性 : 在布局文件中, 可以为 Fragment /> 元素指定 android:id 和 android:tag...传递数据 : 将 Activity 当作接口子类对象, Fragment 中调用 Activity 中的接口方法; -- Fragment 定义接口 : 在 Fragment 内部定义一个 Callback...Fragment 生命周期 (1) Fragment 状态 活动状态 : Fragment 处于前台, 可见, 可以获取焦点; 暂停状态 : Fragment 嵌入的Activity 也处于暂停状态,

    1.6K50

    activity嵌套fragment,fragment内嵌fragment之间传值切换fragment

    至于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

    1.1K12

    ViewPager 详解(五)—–使用Fragment实现ViewPager滑动

    前言:前几篇文章讲解了ViewPager的普通实现方法,但android官方最推荐的一种实现方法却是使用fragment,下面我们使用fragment来重新实现一下第一篇《ViewPager 详解(一)...系列文章: 1、《ViewPager 详解(一)—基本入门》 2、《ViewPager 详解(二)—详解四大函数》 3、《ViewPager 详解(三)—PagerTabStrip与PagerTitleStrip...添加标题栏的异同》 4、《ViewPager 详解(四)—-自主实现滑动指示条》 其它相关文章: 5、《Android Fragment完全解析,关于碎片你所需知道的一切》 6、《fragment中嵌套...最后,getCount()返回用于滑动的fragment总数; 从构造函数所以看出,我们要构造Fragment的集合才行,所以下面我们就先产生我们所需要的Fragment类; 2、三个Fragment...Fragment1()转换为fragment” 解决办法 :这是因为导入包不一致,一般的问题在于:在Fragment1中导入的是android.app.Fragment, 而在这里导入类确是:android.support.v4

    1.6K20

    Navigation问题详解——Fragment创建新的实例

    之后,也在尝试使用Navigation,但是使用的过程当中遇到了问题: 每次进入下一个Fragment不管任务栈里是否存在该Fragment的实例,都会创建一个新的实例而不会复用。...注意如果要实现以上效果我们应该注意一下几个地方: 1.如果我们用Kotlin语言,那么我们在gradle当中引用的地方的类库,需要改成 implementation "android.arch.navigation:navigation-fragment-ktx...implementation "android.arch.navigation:navigation-ui-ktx:$nav_version" // use -ktx for Kotlin 2.这样我们在Fragment...navigate(R.id.action_oneFragment_to_twoFragment) 注意这里,引用的findNavController包为: import androidx.navigation.fragment.findNavController...但是,我们的问题依旧存在,每次点击的时候依然会创建一个新的Fragment,一个新的实例,只是我们在创建新的实例的时候,把之前的给清除了而已。 我会在下一篇文章介绍如何解决这个问题!

    1.9K20

    Fragment

    区别 二、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重新创建。既不剩内存,也不提高性能。

    70120

    Android开发之漫漫长途 XII——Fragment详解

    --在这里使用fragment 标签 并指定name为上面定义的两个Fragment的全类名--> fragment android:id="@+id/fragment1"...Fragment生命周期 和Activity一样,Fragment 也有自己的生命周期,理解Fragment的生命周期非常重要,我们通过代码的方式来瞧一瞧Fragment的生命周期是什么样的: public...Fragment通信 一个宿主Activity可能包含2个以上的Fragment,那么Fragment之间以及Fragment与宿主Activity之间的通信问题是我们不得不解决的问题。...中调用另外一个Fragment中的方法 我们可以直接在一个Fragment中调用另外一个Fragment的公开方法,前提是要先拿到另外一个Fragment的实例,我们先来看看怎样拿到实例: public...---- 本篇总结 我们本篇详细分析了Android Fragment相关知识,灵活运用Fragment可以让你得到意向不到的效果,我们使用Fragment降低耦合度,但是可能也增加了Fragment之间以及

    41010

    Android中最最常用—Fragment基础篇最详解

    本文就从 Fragment的诞生开始,详细的介绍下 Fragment的各个方面,包括其定义、使用、通信、生命周期等!...基本使用 介绍 Fragment使用前,先介绍下 Fragment一些相关的核心类: Fragment:基类,任何创建的 Fragment都需要继承该类。...当我们在 Fragment中继续添加 Fragment,怎么在父 Fragment中获取子 Fragment的管理器?就需要使用 getChildFragmentManager()来获取。...常常配合有多个 Fragment及有TAB等切换方式的时候,如APP的底部导航,选中某个按钮,让对应的 Fragment显示,其他 Fragment隐藏。...对于 Fragment之间的通信,由于 Fragment之间是没有任何依赖关系的,如果要进行 Fragment之间的通信,建议通过 Activity作为中介,不要 Fragment之间直接通信。

    1.9K20

    再谈Fragment

    Fragment 就是一个 Activity 布局的一部分,可以把 Activity 的一部分布局抽离出来到 Fragment 中,并且 Fragment 也可以执行逻辑。...如果用 Fragment 就灵活多了,Activity 只需要根据导航显示对应的 Fragment 就可以了。 如果别的地方需要某一个模块,直接拿出对应的 Fragment 就可以了。...Fragment 相关的三个类 Fragment 具体的 Fragment FragmentManager 是管理 Fragment 的 FragmentTransaction 通过事务来进行添加 Fragment...、隐藏、移除 等操作 Fragment 动作,事务保证了原子性 主要方法 transaction.add() 向 Activity 中添加 Fragment,只是添加 Fragment,不影响之前 Fragment..." /> 在代码中获取的这个 Fragment 通过 Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment

    1K20
    领券