Android Fragment的学习笔记

安卓开发学习笔记(3)使用Fragment(实例:实现模拟微信界面中的Tab标签切换功能) 代码: MainActivity.java package com.example.tabfragment; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; impor... 阅读详情

A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own input events, and which you can add or remove while the activity is running (sort of like a “sub activity” that you can reuse in different activities).

上面是谷歌官方对于Fragment的介绍。主要说明了Fragment和Activity之间的关系,谷歌官方推出Fragment是希望它能在在一些特定的场合替代Activity。它比Activity更灵活,可以作为Activity的一个模块,同时可以被多个Activity重用,最重要的是:Fragment有自己独立的生命周期,接受自身的事件输入。同时,可以在Activity运行期间添加或移除。

应当理解fragment的优势:灵活。因此一些内容时常会变化的场景下,比如照片的浏览。
同时需要注意的是Fragment必须嵌入到一个Activity当中,而且Activity的生命周期会直接影响到Fragment的生命周期。Activity被销毁的同时,Fragment也会被销毁,只有在Activity处于Running状态Fragment才能执行添加或移除操作。
Fragment可以被添加进管理Activity的堆栈当中,会记录下Fragment当中发生的事务。这个堆栈允许用户通过back键,改变Fragment的事务。这一点是很重要,这样我们可以用Fragment代替几乎所有的Activity。
Fragment可以作为Activity布局中的一个模块,在ViewGroup的内部视图层,Fragment可以定义自己的布局文件。通过<fragment>字段声明。也可以通过代码添加到ViewGroup当中。甚至,fragment可以不作为layout的一部分,可以没有UI作为一个不可见的活动。

Design Philosophy

Android introduced fragments in Android 3.0 (API level 11), primarily to support more dynamic and flexible UI designs on large screens, such as tablets.

安卓主要是为了针对大屏设备而推出的fragment,以便支持更多动态的灵活的UI设计。
同样的fragment组件在平板和手机可以又不一样的布局
如上图所示:相同的fragment组件在屏幕尺寸不一样的设备上可以有不同的展示,这样便于开发者开发适用各种设备的应用。

Creating a Fragment

创建一个fragment必须继承fragment(或者已有的子类)。fragment的代码和Activity的代码很相似,有很多的相同的生命周期函数。
fragment的生命周期
通常情况下我们只用重写fragment的如下方法:

onCreate()
系统在创建fragment的时候会调用这个方法,我们应当在该方法当中实现基本组件的初始化,这些基本组件在fragment暂停或停止的时候能够保存,当fragment resume的时候能够重现。

onCreateView()
系统会在fragment第一次绘制UI的时候调用该方法。该方法必须返回一个View,这个View应当是fragment的layout。如果fragment不提供任何UI,可以返回null。

onPause()
系统调用该方法,表示用户将要离开这个fragment(这并不意味着fragment会被销毁)。通常我们会在这里提交一些需要被持久化的参数(因为,用户可能不会再进入该fragment)。

大部分应用至少会重写这三个方法,还有一些别的回调方法可以用来处理fragment的各个生命周期。

安卓学习笔记20:Fragment入门 1. 了解Fragment与Activity的关系; 2. 掌握Fragment的生命周期; 3. 学会编写多Fragment安卓程序 阅读详情

相关推荐

android fragment切换防止destroy

最基础的activity内嵌fragment,实现fragment切换,并利用fragment的hide和show防止fragment不断的被销毁和重建,虽然很简单,但是很实用

Fragment的基本知识

Fragment的基本知识

xiaokang666的博客 673

Mamba vs YOLO:目标检测选型指南(附实际项目对比)

本文深入对比了Mamba和YOLO在目标检测领域的性能差异与应用场景。通过实际项目数据,分析了两者在城市交通监控、工业质检等场景下的表现,提供了详细的选型指南和部署优化建议,帮助开发者根据实时性、精度等需求选择最适合的解决方案。

weixin_29062255的博客 368

android开发:fragment生命周期

记录Android开发中fragment的生命周期

shakdy的博客 957

告别Godot默认编辑器:手把手教你用VSCode配置C#开发环境(附中文注释避坑指南)

本文详细介绍了如何将VSCode配置为Godot引擎的C#开发环境,提升游戏开发效率。从环境准备、扩展配置到解决中文编码问题,提供完整的避坑指南和高级调试技巧,帮助开发者充分利用VSCode的智能补全和调试功能,打造高效工作流。

weixin_30596023的博客 189

PSM-DID实战指南:Stata代码解析与案例应用

本文详细解析PSM-DID方法在Stata中的实战应用,从理论到代码实现全面覆盖。通过倾向得分匹配(PSM)和双重差分(DID)的结合,有效解决政策评估中的选择偏差问题。文章提供完整的Stata命令代码、样例数据处理技巧和案例应用,帮助研究者准确评估政策效果。

vulkan6gpu的博客 791

(四)Android基础系列之:Fragment

一、Fragment生命周期函数 1、当Fragment第一次依附于它所属的activity时自动调用的方法 @Override public void onAttach(Activity activity) { super.onAttach(activity); } 2、当Fragment被创建时做初始化操作时自动调用的方法 @Override public void onCreate...

zhoufeng的博客 430

FreeCAD地下管道自动化建模实战:Python脚本从入门到导出OBJ

本文详细介绍了如何利用FreeCAD的Python API实现地下管道的自动化建模,从数据处理到模型导出OBJ格式的全流程。通过实战案例和代码示例,展示了圆形和矩形截面管道的创建方法,以及法兰连接等特殊处理技巧,大幅提升工程设计效率。

ff678的博客 248

重写返回键(Fragment)

自定义 BackHandledFragment类 判断是Fragment,按下返回键返回上一个Fragment(页面) public abstract class BackHandledFragment extends Fragment { protected BackHandledInterface mBackHandledInterface; /** * ...

weixin_34362790的博客 666

通信原理 | 随机数仿真 | 均匀、正态、双高斯、瑞利、莱斯、对数正态、nakagami、Suzuki分布的随机数仿真(matlab)

信道建模在通信系统设计和分析中扮演着至关重要的角色。它指的是使用数学和物理模型来描述和模拟无线或有线通信路径中的信号传播特性。

若北辰 1984

k8s 不同node之间pod ip不通

底层k8s使用calico网络,ipip网络模式,kubevirt启动了2台虚拟机;在这两台虚拟机上再搭建k8s,calico网络,ipip网络模式。说明:我是使用helm安装的calico,改这个模式要改crd资源ippools。其他方式安装的calico修改方法可能不一样。在虚拟机上的k8s上启动了2个pod,分布在不同的node上,这两个pod不能ping通对方的pod ip。修改虚拟机之上的k8s集群的calico网络的ipipMode为Never即可,之前使用的是Always。

weixin_40548182的博客 4056

Android之Fragment实现界面切换学习笔记

Android之Fragment实现界面切换学习笔记  今天来实现一个简单的界面切换功能,关于页面的切换相信大家都非常熟悉,比如微信、QQ、支付宝等这些常用软件都会有界面切换功能,根据软件的要求不同,我们所设计的页面切换个数也会不同,今天我就写一个四个基本页面切换的小Demo,具体的代码功能都会在注释上写上。      PS:如果想和是我一样的效果,记得先把系统默认的ActionBar去掉,在头

GodV的博客 1769

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2369

安卓学习笔记之Fragment

Fragment组件,

告诉自己,每天进步一点点。 2619

ESP32-IDF开发实例-外部Flash与FatFs文件系统数据存取

FatFs是用于小型嵌入式系统的通用FAT / exFAT文件系统模块。FatFs模块是按照ANSI C(C89)编写的,并且与磁盘I/O层完全分开。因此,它独立于平台。它可以并入资源有限的小型微控制器中,例如8051,PIC,AVR,ARM,Z80,RX等。ESP32-IDF对FatFs提供了良好的支持。

视觉与物联智能 2915

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【Android学习笔记】Activity的小弟--Fragment以及异步加载数据的Loader

一、What is a fragment? 首先,fragment总是被嵌入到一个activity中,你可以把它看做是activity中的一个模块,也是用来呈现数据的,但它不需要在manifest中配置,因此可以看做一个轻量级的activity。它有着自己的生命周期,但又依赖与attach的activity。Fragment的出现是为了解决大屏适配的问题,但现在你可以利用fragment来实现更

斗code、年华 2670

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

安卓碎片Fragment学习笔记

学习安卓碎片有关基础知识,梳理了主要知识点。

专注于AI领域前沿知识,业余爱好开发软件 658

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android学习笔记——Fragment

将布局文件变为View对象 静态加载 1、创建一个activity2 在对应的xml中加入,其中name属性绑定对应的fragment类。 2、创建fragment类以及对应的布局文件,在fragment类中将布局文件转换为View对象    View view=inflater.inflate(R.layout.fragment, container, false); 3、在主

CQU_LiuHC的博客 727

安卓学习笔记5.4—Fragment入门

Fragment是android3.0引入的新API,它代表Activity的子模板,所以可以把fragment理解为Activity片段。Fragment必须被“嵌入”Avtivity中使用,因此Fragment也拥有自己的生命周期,不过Fragment的生命周期受Activity所控制,也就是说Activity停止的时候,Activity中所有的Fragment都会被停止。其他状态也是一样。

justin02191004的博客 746

第一行代码(安卓)学习笔记——第四章(碎片Fragment)

碎片(fragment)是一种可以嵌入在活动中的UI片段,可以让程序更加合理地应用大屏幕的空间。 1.碎片的使用 简单使用 一个名为left_fragment的布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" andro...

qq_43228039的博客 272

Android开发学习笔记——Fragment

Android开发学习笔记——Fragment简介基本使用静态添加动态添加生命周期Fragment中的通信 简介 Fragment直译过来即碎片, 是一种可以嵌入在 Android 当中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用得非常广泛。Fragment 和 Activity 非常像,同样可以包含布局,同样都有自己的生命周期。你甚至可以将 Fragment 理解成一个迷你型的 Activity,虽然这个迷你型的 Activity 有可能和普通的 Activity 是一样大

qq_36425800的博客 779

Android学习笔记——Fragment

自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~哈哈,是不是有点过~ 本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务;以及Fragment的一些特殊用途,例如:没有布局的Fragment有...

韬霖笔记 182

android fragment学习笔记

fragment相当于网页中的块,一个activity中可以包含多个fragment,互相独立,互不干扰。但可以通过定义回调接口的方式来实现相互通讯。 每个fragment寄生在activity中,当activity生命周期为onPause()时,其包含的每个fragment也会调用各自的onPause()方法。 fragment可以在布局文件中定义,可以针对不同的屏幕大小设计不同的布局文件。

1万+
上一篇: 有序化(Serializable)的讲解
下一篇: 安卓开发之Fragment的嵌套
Kiplening
博客等级 码龄14年 7粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值