zoukankan      html  css  js  c++  java
  • Fragment和Activity

    最近学习Fragment一头雾水,花了很多时间,但是没有什么突破,对其理解似懂非懂,所以今天给自己准备了几个问题试着解决一下。

    1、Fragment的产生背景?

           自从Android 3.0中引入fragments 的概念,Google翻译为:碎片、片段。其目的是为了解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而诞生了fragments 。

    2、Fragment是什么?

           要理解Fragment是什么,就得先知道Activity是什么。你看到的每一个app页面其背后都有一个Activity,Activity完成页面的所有请求以及数据的获取和传输(通过Intent),对layout中的页面进行管理,让我想到了Java web 开发中的Servlet。好的,那到底什么是Activity呢?哦,不对,到底什么是Fragment呢?

           汉化后的官方文档:

           Fragment 表示 Activity 中的行为或用户界面部分。您可以将多个片段组合在一个 Activity 中来构建多窗格 UI,以及在多个 Activity 中重复使用某个片段。您可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且您可以在 Activity 运行时添加或移除片段(有点像您可以在不同 Activity 中重复使用的“子 Activity”)。

           片段必须始终嵌入在 Activity 中,其生命周期直接受宿主 Activity 生命周期的影响。 例如,当 Activity 暂停时,其中的所有片段也会暂停;当 Activity 被销毁时,所有片段也会被销毁。 不过,当 Activity 正在运行(处于已恢复生命周期状态)时,您可以独立操纵每个片段,如添加或移除它们。 当您执行此类片段事务时,您也可以将其添加到由 Activity 管理的返回栈 — Activity 中的每个返回栈条目都是一条已发生片段事务的记录。 返回栈让用户可以通过按返回按钮撤消片段事务(后退)。

           当您将片段作为 Activity 布局的一部分添加时,Fragment存在于 Activity 视图层次结构的某个 ViewGroup 内部,并且片段会定义其自己的视图布局。您可以通过在 Activity 的布局文件中声明片段,将其作为 <fragment> 元素插入您的 Activity 布局中,或者通过将其添加到某个现有 ViewGroup,利用应用代码进行插入。不过,片段并非必须成为 Activity 布局的一部分;您还可以将没有自己 UI 的片段用作 Activity 的不可见工作线程。

           解释一下:Fragment是Activity的生命周期中的一部分或者用户界面中的一部分,这样Activity可以对Fragment实现动态的管控,当Activity处于运行状态时,Fragment可以对自己的行为和生命周期进行自主管控,但是当Activity处于pause或者stop状态时,Fragment也会处于pause或stop状态,可谓得之则生,弗得则死呀。

           安卓官方文档:https://developer.android.google.cn/guide/components/fragments

            写到这里不好意思再写了,再写还是继续抄博客和文档,还不如直接把文档给大家呢。还有像告诉大家一个事实,百度百科和所有的博客都是在抄袭安卓开发官方文档,所以还不如直接看官方文档。不仅是android学习,都要多看官方文档,解决具体问题的时候看博客等等。

          安卓官方文档:https://developer.android.google.cn/guide/components/fragments

          安卓官方文档:https://developer.android.google.cn/guide/components/fragments

    我们不一样
  • 相关阅读:
    python os
    python random
    python 内置函数
    python 介绍,环境配置
    利用Python批量重命名文件夹下文件
    go语言学习基础-编译文件
    Django-on_delete
    Django]models中定义的choices 字典在页面中显示值
    Django-User
    12.1 flask基础之简单实用
  • 原文地址:https://www.cnblogs.com/bug-mark/p/Android.html
Copyright © 2011-2022 走看看