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

Android入门教程 | Fragment 基础概念

如要为片段提供布局,必须实现 onCreateView() 回调方法,Android 系统会在片段需要绘制其布局时调用该方法。此方法的实现所返回的 View 必须是片段布局的根视图。...创建此 Activity 布局时,系统会将布局中指定的每个片段实例化,并为每个片段调用 onCreateView() 方法,以检索每个片段的布局。...如果没有在执行删除片段的事务时调用 addToBackStack(),则事务提交时该片段会被销毁,用户将无法回退到该片段。...onCreateView() —— 当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。...同时也可以在该回调中将传入的Arguments提取并解析,在这里强烈推荐通过setArguments给Fragment传参数,因为在应用被系统回收时Fragment不会保存相关属性。

3.5K40

Fragment初识

例如:新闻应用可以使用一个片段在左侧显示文章列表,使用另一个片段在右侧显示文章—两个片段并排显示在一个 Activity 中,每个片段都具有自己的一套生命周期回调方法,并各自处理自己的用户输入事件。...不过,在手机尺寸的屏幕上,没有足以储存两个片段的空间,因此Activity A 只包括用于显示文章列表的片段,当用户选择文章时,它会启动Activity B,其中包括用于阅读文章的第二个片段。...官方文档说创建Fragment时至少需要实现三个方法:onCreate( ),onCreateView( ),OnPause( ); 不过貌似只写一个onCreateView也是可以的… Fragment...Step 1:定义Fragment的布局 Step 2:自定义一个Fragment类,需要继承Fragment或者他的子类,重写onCreateView()方法 在该方法中调用:inflater.inflate...()方法, * 因为从fragment的生命周期可以知道当Activity的onCreate(Bundle savedInstanceState)中 * 还无法获取fragment的布局的组件

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

    Android交流会-碎片Fragment,闲聊单位与尺寸

    接下来看看Fragement的生命周期,图片来源官方: 图片 从上而下: 添加Fragment -> onAttach() -> onCreate() -> onCreateView() -> onActivityCreated...onAttach(): 一旦片段与其活动相关联就被调用; onCreate(): 片段被调用创建; onCreateView(): 创建并返回相关的视图结构; onActivityCreated(...,接下来是点击响应的方法 给MainActivity加上View.OnClickListener接口 在生成的onClick()方法中加上导航栏区域的响应 别忘了在initView()中添加监听器 图片...setMain() 方法,来显示打开界面时,显示的初始页面 实现点击底部导航栏来切换响应的fragment,我们在onClick()中添加即可 图片 3.创建Fragment 创建一个Fragment的子类...,继承Fragmennt类,重写onCreateView()方法。

    1.2K20

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

    若想给Fragment传递参数,可在Fragment类中定义一个静态方法newInstance,在该方法中通过setArguments函数写入Bundle对象;然后重写方法onCreateView,在该方法中通过...3、动态注册可以在构造Fragment时传入参数,而静态注册无法直接传参。...该事务的对象可从FragmentManager的beginTransaction方法获得,下面是FragmentTransaction的常用方法: add : 添加碎片 replace : 替换碎片...无则添加,有则替换 remove : 移除碎片 addToBackStack : 加入一个回退栈。这是为了在用户按下返回键时,能够回到上一个页面。...onActivityCreated : 在Activity页面创建完毕之后调用,这意味着onCreateView有可能在主页面尚未创建完毕时就完成了,比如说在主页面的onCreate方法中加入Fragment

    1.3K60

    Android fragment 标签加载过程分析

    建议先回顾下之前五篇文章,这个系列的文章从前往后顺序看最佳: 《Android setContentView 源码解析》; 《Android LayoutInflater 源码解析》; 《Android...1、铺垫 各位老司机肯定对 Fragment 的使用都非常熟悉,我们简单回顾下:Fragment 的添加方式有两种:静态添加和动态添加。...就是说 fragment 标签节点也会被 LayoutInflater 解析,只是被解析之后的流程和别的 view 不一样了。...创建 view,这里就会走到 Activity 的onCreateView 方法; 通过 mFragments(也就是 FragmentController)的 onCreateView 方法来创建 View...方法; 调用 FragmentController 的 onCreateView 方法; 调用 FragmentManager 的 onCreateView 方法; 调用 moveToState 方法

    1.8K10

    android之Fragment介绍

    Fragment是一种可以嵌入在Activity当中的UI片段,用来组建Activity界面的局部模块, 也可以说一个Actiivty界面可以由多个Fragment组成。...其行为与Activity很相似, 有自己对应的布局(包含具体的View), 它有自己的生命周期,接收自己的输入事件,并且可以从运行中的activity中添加或移除。...Fragment的生命周期 image.png onCreateView是创建的时候调用,onViewCreated是在onCreateView后被触发的事件,前后关系 就是fragment中的onCreateView...且onStart运行时间位于onViewCreated之后 方法 含义 onAttach方法 Fragment和Activity建立关联的时候调用(获得activity的传递的值) onCreateView...(表示activity执行oncreate方法完成了的时候会调用此方法) onDestroyView方法 Fragment中的布局被移除时调用(表示fragment销毁相关联的UI布局) onDetach

    81620

    Fragment最全面使用详解

    例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。...详细解读每个方法的调用场景 onAttach方法 Fragment和Activity建立关联的时候调用(获得activity的传递的值) onCreateView方法 为Fragment创建视图...和Activity解除关联的时候调用(脱离activity) fragment生命周期解析 当一个fragment被创建的时候: onAttach() onCreate() onCreateView...Fragment的使用 由于Fragment作为Activity的一部分,所以Fragment的使用一般是添加到Activity中,一般有两种方法将Fragment添加到Activity中: - 方法...原因是因为Fragment的可扩展性,它能作为一个独立的显示单元添加到activity中。本文仅仅只是为了说明fragment的layout实现方法,实际应用中,可能比这复杂很多。

    2.2K20

    Android应用界面开发——Fragment(实现图书详情界面)

    接下来实现它的回调方法,例如:onCreate()、onCreateView()、onStart()、onResume()、onPause()、onStop()等等。...onCreateView():当Fragment绘制界面组件时会回调该方法。该方法必须返回一个View,该View也就是该Fragment所显示的View。...onAttach():当该Fragment被添加到Activity时被回调。该方法只会被调用一次。 onCreate():创建Fragment时回调,该方法只会被调用一次。...onCreateView():每次创建、绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View组件。...onResume():恢复Fragment时被回调,在onStart()方法后一定会回调onResume()方法。 onPause():暂停Fragment时被回调。

    2.6K20

    Carson带你学Android:这是一份详细 & 全面的Fragment学习攻略

    如:当Activity暂停时,它拥有的所有Fragment们都暂停 2....生命周期解析 先来看官方说明图 详解每个方法的调用场景 onAttach方法 Fragment和Activity建立关联的时候调用(获得activity的传递的值) onCreateView方法...方法 Fragment和Activity解除关联的时候调用(脱离activity) Fragment生命周期解析 当一个fragment被创建的时候: onAttach() onCreate()...具体使用 由于Fragment作为Activity一部分,所以Fragment的使用一般是添加到Activity中 将Fragment添加到Activity中一般有2种方法: 在Activity...的layout.xml布局文件中静态添加 在Activity的.java文件中动态添加 方法1:在Activity的layout.xml布局文件中静态添加 Activity的布局文件 fragment_layout_test.xml

    37720

    android Fragment 的简单应用

    碎片(Fragment)是一种可以嵌入在活动中的UI片段,可以理解成一个迷你活动。...上面这里重写了Fragment的onCreateView()方法,然后在这个方法中通过LayoutInflater的inflate()方法将刚才定义的left_fragment布局动态加载进来。...效果如图,两个碎片平分了活动布局 接下来,在上面的基础上,学习动态添加碎片 碎片的强大之处就在于,可以在程序运行的时候,动态的添加到活动中,根据具体的情况来动态的添加碎片。...在onCreateView()方法中加载了刚刚创建的another_right_fagment布局,这样就创建好了另一个碎片。...首先,给左侧碎片中的按钮注册了一个点击事件,然后调用replaceFragment()方法,动态的添加RightFragment这个碎片,当点击左侧碎片时,又会调用replaceFragment()方法将右侧碎片替换成

    42920

    Android LayoutInflater 源码解析

    ,实际上最终调用的就是方法三; 而方法三最终会调用到方法二 Context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ; 2、inflate 方法解析...view当中时,这些layout属性会自动生效; 在不设置attachToRoot参数的情况下,如果root不为null,attachToRoot参数默认为true; 3、rInflate 方法解析 以上代码中我们还有两个方法没有分析...通过 createViewFromTag 创建出 View 对象; 如果是 ViewGroup,则重复以上步骤; add View 到相应的 parent 中; 4、createViewFromTag 方法解析...= null) { // ② 有mFactory,则调用mFactory的onCreateView方法 view = mFactory.onCreateView...,首先尝试通过 Factory 来创建View; 如果没有 Factory 的话则通过 createView 来创建View; 5、createView 方法解析 备注:以下源码中有三条备注。

    92340

    Fragment

    Frament也叫碎片,片段。是Google在Android 3.0引入的,主要为了给大屏幕的UI提供支持的。...您可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且您可以在 Activity 运行时添加或删除片段(有点像您可以在不同 Activity 中重复使用的...片段必须始终嵌入在 Activity 中,其生命周期直接受宿主 Activity 生命周期的影响。 4.生命周期 每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件。...其中大多数程序必须使用Fragments 必须实现的三个回调方法分别为: onCreate 系统创建Fragments 时调用,可做执行初始化工作或者当程序被暂停或停止时用来恢复状态,跟Activity...onCreateView 用于首次绘制用户界面的回调方法,必须返回要创建的Fragments 视图UI。假如你不希望提供Fragments 用户界面则可以返回NULL。

    9510

    Fragment找不到资源Id引起的线上Crash

    找到对应资源int id fl_about_container 0x7f090283图片从堆栈看全部在系统调用,首先想到先结合异常源码看看:图片从代码片段看是当前Fragment.mContainerId...2个replace操作待处理2、当销毁的3个Fragment执行onCreate和onCreateView完毕后,此时FragmentManager还会调用execPendingActions,也正是因为调用了这个方法导致了...这个方法是立即执行挂起的操作,很显然在阶段1中有2个replace属于挂起操作,所以这个方法会把这2个replace立即执行。...但onCreateView方法执行不了,因为在FragmentStateManager中图片这里在看抛出异常的链路就很清楚了:图片自此整个Crash的调用链路和发生场景都搞清楚了。...,这样在FragmentActivity执行onStart时,FragmentMananger执行execPendingActions就只有AboutFragment的一个replace挂起的操作,这个操作再

    98240

    带着问题去看源码——LayoutInflater

    attachToRoot(即调用两个参数的方法),情况和(2)中一样 前两种方法是最常用的加载布局的方法,最终都会调用最后一种方法来加载布局: LayoutInflater是通过Pull解析(XmlPullParser...解析器)方式来解析XML布局文件,解析出节点名之后,然后会调用rInflate方法,这个方法里面会遍历这个根布局下的子元素。...最后若root不为null会调用addView方法,将该生成的View添加到root布局中。...createViewFromTag,每次都会递归调用这个方法来创建这个View下的子元素并且添加到根布局中。...xml的节点名来生成一个View对象,如何生成的呢,调用了一个createView方法(onCreateView方法中也会调用createView方法): public final View createView

    21110
    领券