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

android之Fragment介绍

Android运行在各种各样的设备中,有小屏幕的手机,还有大屏幕的平板,电视等。...其行为与Activity很相似, 有自己对应的布局(包含具体的View), 它有自己的生命周期,接收自己的输入事件,并且可以从运行中的activity中添加或移除。...一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity的影响。本质上会产生一个FrameLayout,它加载的布局为其子布局。...优势: 模块化:我们不必把所有代码全部写在Activity中,而是把代码写在各自的Fragment中。 可重用:多个Activity可以重用一个Fragment。...(表示activity执行oncreate方法完成了的时候会调用此方法) onDestroyView方法 Fragment中的布局被移除时调用(表示fragment销毁相关联的UI布局) onDetach

81620

《Android编程权威指南》之UI fragment与fragment管理器

它有自己的视图(由布局文件实例化而来),视图包含了用户可以交互的可视化UI元素。 activity视图可以提供多个位置给fragment,也就是一个activity里面可以含有多个fragment。...编写代码以实例化部件 六、托管 UI fragment 意思就是 activity 在其布局中为 fragment 的视图安排位置,并管理 fragment 实例的生命周期。...和onCreateView(...)函数会被调用。...、onStart()以及onResume(),当 fragment 的快速同步上 activity 最新的生命周期状态的后,托管activity的FragmentManager就会边接收操作系统的调用指令...七、采用fragment的应用架构 fragment 的本意是封装关键部件以方便复用,实践证明,应用单屏最多使用2~3个 fragment。

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

    【Android开发基础系列】Fragment专题

    如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有...当系统创建这个Activity的布局文件时,系统会实例化每一个fragment,并且调用它们的onCreateView()方法,来获得相应fragment的布局,并将返回值插入fragment标签所在的地方...1.5 实例   练习的例子:   写一个类继承自Fragment类,并且写好其布局文件(本例中是两个TextView),在Fragment类的onCreateView()方法中加入该布局。   ...当activity通过这个接口接收到一个回调,它可以同布局中的其他fragment分享这个信息。   ...比如说,当activity接收到它的onCreate()回调函数,那么这个activity中的fragment最多接收到了onActivityCreated()。

    46430

    Fragment基本使用

    ,并能接收输入事件 可以在Activity运行时动态地添加或删除Fragment Fragment的优势: 模块化(Modularity):我们不必把所有代码全部写在Activity中,而是把代码写在各自的...类或其子类,同时实现onCreate()方法,在方法中,通过inflater.inflate加载布局文件,接着返回其View 在需要加载Fragment的Activity对应布局文件中的name属性设为全限定类名...()方法返回Fragment的UI布局,需要注意的是inflate()的第三个参数是false,因为在Fragment内部实现中,会把该布局添加到container中,如果设为true,那么就会重复做两次添加...Fragment与Activity的通信交互如上图所示: 如果Activity中包含自己管理的Fragment的引用,可以通过引用直接访问所有的Fragment的public方法 如果Activity中未保存任何...首先获取自己控件的引用 可以在onCreateView()中获取 public View onCreateView(LayoutInflater inflater, ViewGroup container

    2K30

    Android入门教程 | Fragment 基础概念

    可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且可以在 Activity 运行时添加或移除片段(这有点像可以在不同 Activity 中重复使用的“子...例如,当 Activity 暂停时,Activity 的所有片段也会暂停;当 Activity 被销毁时,所有片段也会被销毁。...如要为片段绘制界面,从此方法中返回的 View 必须是片段布局的根视图。如果片段未提供界面,可以返回 null。...如要从 onCreateView() 返回布局,可以通过 XML 中定义的布局资源来扩展布局。为帮助您执行此操作,onCreateView() 提供了一个 LayoutInflater 对象。...创建此 Activity 布局时,系统会将布局中指定的每个片段实例化,并为每个片段调用 onCreateView() 方法,以检索每个片段的布局。

    3.5K40

    Fragment最全面使用详解

    定义 Fragment是activity的界面中的一部分或一种行为 1.把Fragment认为模块化的一段activity 2.它具有自己的生命周期,接收它自己的事件,并可以在activity...例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。...(加载布局)时调用(给当前的fragment绘制UI布局,可以使用线程更新UI) onActivityCreated方法 当Activity中的onCreate方法执行完后调用(表示activity...1:在activity的layout.xml文件中声明fragment - 方法2:在activity的layout.xml文件中声明包含 方法1:在activity的layout.xml文件中声明...ExampleFragment的onCreateView()中,将example_fragment作为其布局文件。

    2.2K20

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

    定义 Activity界面中的一部分,可理解为模块化的Activity Fragment不能独立存在,必须嵌入到Activity中 Fragment具有自己的生命周期,接收它自己的事件,并可以在Activity...如:当Activity暂停时,它拥有的所有Fragment们都暂停 2....(表示activity执行oncreate方法完成了的时候会调用此方法) onDestroyView方法 Fragment中的布局被移除时调用(表示fragment销毁相关联的UI布局) onDetach...的layout.xml布局文件中静态添加 在Activity的.java文件中动态添加 方法1:在Activity的layout.xml布局文件中静态添加 Activity的布局文件 fragment_layout_test.xml...方法2:在Activity的.java文件中动态添加 步骤1:在Activity的布局文件定义1占位符(FrameLayout) 这样做的好处是:可动态在Activity中添加不同的 Fragment

    37820

    android推荐使用dialogFrament而不是alertDialog

    onCreateView即使用定义的xml布局文件展示Dialog。onCreateDialog即利用AlertDialog或者Dialog创建出Dialog。...3、 重写onCreateView创建Dialog a)布局文件,我们创建一个设置名称的布局文件: <?xml version="1.0" encoding="utf-8"?...6、DialogFragment做屏幕适配 我们希望,一个对话框在大屏幕上以对话框的形式展示,而小屏幕上则直接嵌入当前的Actvity中。这种效果的对话框,只能通过重写onCreateView实现。...,如果是大屏幕则直接以对话框显示,如果是小屏幕则嵌入我们的Activity布局中 这个R.bool.large_layout是我们定义的资源文件: 在默认的values下新建一个bools.xml Activity销毁前不允许对话框未关闭。

    2.4K50

    Android Fragment 使用

    1、Fragment的产生与介绍 Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。...你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,...,把Fragment当成普通的控件,直接写在Activity的布局文件中。...步骤: 1、继承Fragment,重写onCreateView决定Fragemnt的布局 2、在Activity中声明此Fragment,就当和普通的View一样 下面展示一个例子(我使用2个Fragment...一样声明在Activity的布局文件中,然后所有控件的事件处理等代码都由各自的Fragment去处理,瞬间觉得Activity好干净有木有~~代码的可读性、复用性以及可维护性是不是瞬间提升了~~~下面看下效果图

    47720

    Activity与Fragment 以及使用接口 fragment向activity床底消息

    你可以认为fragment作为一个activity中的一节模块 ,fragment有自己的生命周期,接收自己的输入事件,你可以添加或移除从运行中的activity。   ...当activity 暂停,那么所有在这个activity的fragments将被destroy释放。...一个处于stopped状态的activity还是存活状态的,所有的状态和成员信息会被系统保持。但是,它不再被用户可见,并且如果宿主activity被kill掉,它也会被kill掉。...4.fragment和Activity中控件的加载   Fragment的载入是通过OnCreateView的时候通过inflater.inflate()加载布局,然后通过修改main.xml,在main.xml...当activity通过这个接口接收到一个回调,它可以同布局中的其他fragment分享这个信息。

    13810

    动态创建Fragment

    第二步,复写onCreateView的方法 第三步,在onCreateView方法里面进行,使用inflater把layout布局文件转换为一个View对象 第四步,在onCreateView的return...方法里,把我们的View对象返回出去 第五步,在要使用activity的布局里面,像使用控件的方式把我们的fragment定义到ViewGroup(就是布局里面) 动态使用fragment的步骤: 第一步...fragment使用(现在开发基本不用了) 1.0 自定义fragment类里继承v4包下的fragment.记住所有用到fragment地方导入包必须一致 2.0 你们自定义的activity必须继承...下面是我做的一个小Demo 是在一个页面中实现各个Activity之间的通信,左侧点击按钮,右侧出现相应的Activity界面.同时on关实现两个Activity之间的通信....第一步,在布局文件main_Activity中设置按钮button和文本.然后加上布局文件FrameLayout. xmlns:tools="http://schemas.android.com/tools

    2.4K10

    Android之Fragment

    fragments 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修改activity 的外观,并且由activity...当一个片段指定了自身的布局时,它能和其他片段配置成不同的组合,在活动中为不同的屏幕尺寸修改布局配置(小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多)。   ...可以从startActivityForResult中接收到返回结果,但是View不能。...例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。...比如说,当activity接收到它的onCreate()回调函数,那么这个activity中的fragment最多接收到了onActivityCreated()。

    67320

    Android面试题之Activity和Fragment生命周期 一次性记忆

    onCreateView(LayoutInflater, ViewGroup, Bundle) 创建该F onActivityCreated(Bundle)当Activity的onCreated方法返回时调用...PS:注意:除了onCreateView,其他的所有方法如果你重写了,必须调用父类对于该方法的实现 这些方法理解起来并不费劲 但是要完美记在脑子里 还是需要花上一番功夫的 那咱们一个一个来 先从创建开始...: 1.首先 onAttach方法: 和Activity进行关联的时候调用 这个放在第一个 应该好理解 2.我们知道 Activity在onCreate方法中需要调用setContentVIew()进行布局的加载...,那么在Fragment中onCreateView就相当于Activity中的setContentVIew 3.onActivityCreate是一个额外的方法 为了告诉Fragment当前Activity...的onCreateView之后执行,这是不正确的 Fragment一般都是在Activity的onCreate()中创建 要么通过布局加载的方式 要么通过new创建Fragment对象的方式 如果没有

    32820

    Fragment初识

    (),Fragment被添加到Bcak栈 ②该Activity转向后台,或者该Fragment被替换/删除 ps:停止状态的fragment仍然活着(所有状态和成员信息被系统保持着),然而,它对用户...Step 1:定义Fragment的布局 Step 2:自定义一个Fragment类,需要继承Fragment或者他的子类,重写onCreateView()方法 在该方法中调用:inflater.inflate...()方法加载Fragment的布局文件,接着返回加载的view对象 Step 3:在需要加载Fragment的Activity对应的布局文件中添加fragment的标签, 记住,name属性是全限定类名...()生命周期方法之后 * 才能相互获取对方布局中的组件, * 所以在fragment中获取Activity的组件最早只能在onActivityCreate()中获取,...中接收解析数据 // 接收Activity传递过来的数据 Bundle bundle = getArguments(); Toast.makeText(getActivity

    1.2K20

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

    Fragment可以协助我们完成如下任务: 1、在一个页面中嵌入多个连续可翻页的子视图,方面使用ViewPager统一管理; 2、开发一些通用的小部件,内部封装好代码逻辑,可直接嵌入到任意页面。...若想给Fragment传递参数,可在Fragment类中定义一个静态方法newInstance,在该方法中通过setArguments函数写入Bundle对象;然后重写方法onCreateView,在该方法中通过...静态注册主要用于多个Activity共享一个子页面,比如说顶部广告、底部推广、嵌入地图等等,最常见的是百度地图SDK的运用,app要想在页面上展示百度地图,只需在布局中加上一个百度地图的fragment...可在该方法实例化Activity的一个回调对象,就能在Fragment中调用Activity的回调方法,这样设计的好处是Activity无需调用set***Listener方法来设置监听器接口。...onCreateView : 创建Fragment的视图,在onCreate之后调用。

    1.3K60

    再谈Fragment

    Fragment 就是一个 Activity 布局的一部分,可以把 Activity 的一部分布局抽离出来到 Fragment 中,并且 Fragment 也可以执行逻辑。...就是把 Activity 复杂的内容抽离成几个碎片,然后拼凑起来,在 Activity 布局中,只需要引入各个不同的 Fragment 就可以 了。...比如我们常见的布局,底部导航,然后每个模块对应不同的 Fragment。其实也是完全可以不使用 Fragment 的,一个页面中包含各个模块的布局,然后通过点击导航来决定隐藏哪些模块。...这样写的话一个 Activity 中的代码逻辑会非常多,所有模块都融合到一个 Activity 中了,相当冗余,耦合。...通过上面 .add 的方式添加 Fragment 只是将 Fragment 添加到指定的布局中,之后再添加 Fragment 是互相不影响的,在布局上看 FrameLayout 有两个子View(FragmentOne

    1K20
    领券