Android Fragment的使用

安卓重要UI组件之 Fragment 阅读详情

可以分为下面的几部分:

    • 使用支持库

    • 创建一个Fragment

    • 创建一个动态UI

    • 多个Fragment之间的通信

 

1、使用支持库

如果您的应用需要运行在3.0及以上的版本,可以忽略这部分内容。

如果您的应用使用在3.0以下、1.6及以上的版本,需要使用支持库来构建。

使用支持库的步骤:

  1. 使用SDK下的SDK Manager工具下载Android Support Package

     2. 在您的Android工程的顶级目录下创建一个libs目录

    3. 找到您的SDK下的/extras/android/support/v4/android-support-v4.jar,并且拷贝到您的项目的libs下,选中这个jar包 → 右键 → Build Path → Add to Build Path

    4.在您的项目的Manifest.xml文件的<manifest>标签下添加:

    <uses-sdkandroid:minSdkVersion="4"

      android:targetSdkVersion="8"/>

      其中targetSdkVersion是您的软件最小支持的版本

    5.如果您的项目支持3.0以下的版本,请导入如下的包:android.support.v4.*;

    在使用Fragment的Activity请继承FragmentActivity而不是Activity。如果您的系统是3.0或以上版本,同样需要导入类似的包,但是可以使用普通的Activity。 

      

    2、创建一个Fragment

    Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。可以看做是一个子Activity。

    创建一个Fragment

    创建一个Fragment和创建一个Activity很类似,继承Fragment类,重写生命周期方法,主要的不同之处就是需要重写一个onCreateView()方法来返回这个Fragment的布局。例子:

     

      

    Fragment的生命周期方法依赖于Activity的生命周期,例如一个Activity的onPause()的生命周期方法被调用的时候这个Activity中的所有的Fragment的onPause()方法也将被调用。

     

    更多的内容请参照类Fragment。

    使用XML添加Fragment到Activity

    尽管Fragment可以被多个Activity重用,但是您也必须把Fragment关联到一个FragmentActivity上。可以使用XML布局文件的方式来实现这种关联。

    说明:上面的所说的FragmentActivity适用在API在3.0以下的版本,3.0及以上的版本可以使用普通的Activity。

    例子:

      

    上面使用fragment标签,android:name=””指定一个添加到xml中的Fragment。对于创建不同的屏幕尺寸布局的更多信息,请阅读支持不同的屏幕尺寸。

     

     

      

    当您添加一个片段一个活动布局定义的布局XML文件中的片段,你不能删除在运行时的片段。如果您打算在用户交互和交换片段,你必须添加的活性片段的活动时第一次启动。

     

    3、构建一个灵活的UI

     

    FragmentManager提供了对Activity运行时的Fragment的添加、删除、替换的操作。

     

    在Activity运行期间你可以添加Fragment而不是在XML布局文件中进行定义。如果你打算在Activity中改变Fragment的生命过程。

     

    如果要执行添加、删除、修改的操作,你必须通过FragmentManager的对象获得一个FragmentTransaction对象,通过它的API来执行这些操作。

     

    添加一个Fragment到一个Activity,必须把这个Fragment添加到一个容器视图中。例子:

     

    在Activity中你可以通过getFragmentManager()来获得Fragment对象,然后通过FragmentManager对象的beginFragmentTransaction()方法来获得FragmentTransaction对象。通过它的add()方法来添加一个Fragment到当前的Activity中。

    一个FragmentTransaction对象可以执行多个增删修的方法,如果你想把这些修改提交到Activity上,必须在最后调用一下这个对象的commit()方法。例子:

     

      

    由于不是定义在XML布局中的,所有可以转型删除和修改的操作。

    如果替换或者删除一个Fragment然后让用户可以导航到上一个Fragment,你必须在调用commit()方法之前调用addToBackStack()方法添加到回退栈。如果你把这个Fragment添加到了回退栈,在提交之后这个Fragment是会被Stop而不是Destroyed。如果用户导航到这个Fragment,这个Fragment会被Restart而不是重新创建。如果你没有把它添加到回退栈,则在删除或者替换的时候它将被Destroyed。例子:

      

    4、与其他Fragment的交互

    两个单独的Fragment之间是不应该进行通信的。应该使用他们所存在的Activity作为沟通的纽带。

    为了实现两个Fragment的交互,您可以在Fragment中定义一个接口,然后再这个接口中定义一个方法,在Fragment的onAttach()方法中调用这个接口中的方法。然后让Activity实现这个方法来完成Activity和Fragment之间的通信。例子:

    定义接口并调用方法:

     

      

    实现接口,在这个方法中可以进行与其他Fragment的数据的交互:

      

    可以通过FragmentManager的findFragmentById()来查找一个Fragment。

     

     

Fragment 使用详解 和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:一、Fragment 简介二、Fragment的设计原理三、Fragment 生命周期四、Fragment 在Activity中的使用方法五、动态添加Fragment到Activity的方法六、Activity 中获取Fragment七、Fragment 获取宿主Activity的方法八、两个Fragmen... 阅读详情

相关推荐

安卓的fragment跳转问题

最近在做安卓项目,然后就遇到了fragment的问题。 之前做项目的代码拿出来看,发现和这一次的做法不太一样,但在编码过程中就出现了一些跳转的问题。 之前实现fragment是利用FragmentActivity和PageView实现的,这一次就直接继承Fragment,其实思路还是一样的。 实现fragment的方法很多,下面是我这次项目采用的方法: 首先在一个Activity中添加几个

Jenice的博客 1094

【Android】Fragment使用

使用Fragment 我们可以把页面结构划分成几块,每块使用一个Fragment来管理。这样我们可以更加方便的在运行过程中动态地更新Activity中的用户界面,日后迭代更新、维护也是更加方便。,尽管他拥有自己的生命周期,但是还是会受到宿主Activity的生命周期的影响,比如Activity 被destory销毁了,他也会跟着销毁!一个Activity可以嵌套多个Fragment。

liudongdong_jlu 4478

【Android笔记64】Android之Fragment常用方法介绍及其使用

Android中,要创建一个Fragment只需要自定义一个类,接着继承自【androidx.fragment.app.Fragment】该类(注意不要导错包了),然后重写【onCreateView()】方法,加载自定义的布局文件即可。

✅ Java 开发工程师 867

【Android】Fragment的基本用法、Fragment和活动间的通信、Fragment的生命周期、动态加载布局的技巧

Fragment的基本用法、Fragment和活动间的通信、Fragment的生命周期、Fragment的四种状态和回调、动态加载布局的技巧

摸鱼小小虫的博客 5984

Mplus—随机截距交叉滞后模型(RI-CLPM)语法

随机截距交叉滞后模型RI-CLPM的Mplus语法。

m0_54401011的博客 2530

极简JEPA世界模型实战:低门槛复现LeWorldModel,CPU可跑

这次我们来看一个能让普通开发者真正上手跑起来的“世界模型”项目。如果你对Yann LeCun提出的JEPA(联合嵌入预测架构)框架感兴趣,但又苦于Meta官方实现过于庞大复杂,那么这个GitHub上4k star的项目就是为你准备的。它用极简的PyTorch代码(核心文件仅160-278行)完整复刻了包括LeWorldModel在内的五个JEPA核心变体,最大的亮点是: 门槛极低,普通笔记本甚至CPU就能跑,显存占用友好,非常适合学习和原理验证。 这个项目名为 keon/jepa ,完全开源。它剥离了工业级

weixin_29031161的博客 421

【Android】Fragment基本使用

Fragment是一种可以嵌入在Activity当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用得非常广泛。

2303_79296612的博客 1757

多层感知机 Multilayer Perceptron | MLP

本文主要简单介绍了多层感知机的基本概念,优缺点,应用场景,建模时的注意事项,评价指标,实现方法,python示例和模型的参数等。

JasonH2021的博客 3万+

android fragment详解,安卓Fragment使用详解

Fragment是在安卓3.0版本中添加的,主要是为了解决安卓设备尺寸多样化后界面的显示问题。Fragment比Activity较轻量级,也可以提供与用户交互的界面并且有自己的生命周期,也不用在Manifest.xml中注册但它必须嵌套在Activity中使用。之前需要使用多个Activity显示的内容,现在可以用一个Activity嵌套多个Fragment来实现。下面就来说说Fragment的知...

weixin_36379084的博客 1615

【多媒体交互】Unity+普通摄像头实现UI事件分析

利用摄像头捕捉用户的手势或动作,结合坐标映射与事件系统触发UI交互

qq_38350004的博客 1316

使用 ArxivLoader 从 arXiv 加载学术文献并实现高效文档处理

arXiv是一个开放获取的学术存储平台,涵盖了物理、数学、计算机科学等多个领域的 200 万篇学术论文。这些文献中包含了如逻辑推理、机器学习等热门领域的最新研究进展。通过使用 ArxivLoader,我们可以轻松地搜索和加载 arXiv 上的学术文献,并将其转换为文本以供分析或应用于下游任务,例如问答系统、摘要生成或知识图谱构建。有时我们并不需要完整的文献内容,而是只需要摘要用于快速预览。可以使用 get_summaries_as_docs()# 获取文献摘要# 查看第一篇摘要。

hgSdaegva的博客 888

【Fragment】安卓Android开发中的Activity、Fragment、Adapter

前面介绍了Activity,简单地说Activity代表着应用程序中的一个单独的屏幕或界面,用户可以与之交互。那么现在就再来了解一下Fragment。在安卓开发中,Fragment是一种可以嵌入到Activity中的可重用组件,用于构建灵活和模块化的用户界面。与Activity类似,Fragment具有自己的布局和生命周期,并且可以包含用户界面元素和逻辑。

weixin_67898144的博客 1528

Xilinx ZYNQ 7000学习笔记二(FSBL代码分析启动-汇编代码)

Xilinx ZYNQ 7000学习笔记

u011116085的博客 4246

Android上下fragment,安卓Fragment(上)

一、Fragment理解(是什么) 《1》Fragment之与我理解,就是一枚小Activity,他依赖于Activity而存在,一个Activity中可以包括一个或多个Fragment是Activity的片段。Fragment的生命周期依赖于Activity的生命周期。 二、Fragment的实战(怎么用) 《1》Fragment的生成。 Fragment竟然是Activity的片段,“麻雀虽小...

weixin_30253771的博客 226

图形学基础知识:着色(三)Rendering Pipeline与Shader

管线(Pipeline) 什么是管线? 管线我们可以理解为流水线,流水线大家都懂,就是工厂里面生产东西的一整套流程。例如饮料厂要生产饮料,需要洗瓶子,倒饮料,加盖,包装等等,这一整套过程就是流水线。那么我们要把一个三维场景渲染成一幅二维的图像,同样需要一个先干嘛再干嘛然后干嘛最后干嘛的过程,这个过程或流水线,我们就称之为管线。 实时渲染管线(Real-time Rendering Pipeline) 通过前面几篇的学习,我们知道了要把一个三维场景渲染成一幅二维的图像大致分为以下几个步骤: M.

王王王渣渣的博客 2532

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

http://www.cierobot.com 4095

【Activity】安卓Android开发中的Activity、Fragment、Adapter

我最近刚刚接触Android开发,对这个方面的开发可以说是一无所知,所以想着尝试开始理解。在这段时间的摸爬滚打里面,我发现了其中Activity、Fragment、Adapter三种非常常用,所以在这里进行一下我自己的理解。

weixin_67898144的博客 2792

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

安卓Android开发,左边listView右边Fragment切换页面

安卓Android开发,左边listView右边Fragment切换页面

m0_63222566的博客 2262

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

lwip-2.0.3

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

安卓开发fragment报错_android开发 Fragment嵌套调用常见错误

在activity中有时须要嵌套调用fragment,但嵌套调用往往带来视图的显示与预期的不一样或是fragment的切换有问题。在使用时要注意几点:1、fragment中嵌套fragment,子fragment视图无法显示:例如以下:父fragment的.xml文件:android:layout_width="match_parent"android:layout_height="match_p...

weixin_33814002的博客 706

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

安卓编写继承fragment的java_Android:Fragment最全面介绍 & 使用方法解析

前言Fragment在 Android开发中非常常用今天,我将讲解关于Fragment的使用目录Fragment介绍&使用方法解析.png1. 定义Activity界面中的一部分,可理解为模块化的ActivityFragment不能独立存在,必须嵌入到Activity中Fragment具有自己的生命周期,接收它自己的事件,并可以在Activity运行时被添加或删除Fragment的生命周期...

weixin_36397372的博客 997

Android安卓Fragment简单实现

Android安卓Fragment简单实现

Alex_Melody的博客 1680

安卓中fragment的使用全解

全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓中Fragment可以没有UI,不需要manifest中注册,只能嵌套在一个activity存在。在Fragment基础上,系统派生处理另外几种fragment1、DialogFragment:一个fragment可以在fragment的父activity上显示一个浮动的对话框,而且可以自定义对话框的UI2、ListFragment:

1万+

【Android Fragment】Fragment基础

1、fragment “分段”、“碎片”的意思,一般与Activity一起使用,嵌套在activity中表示为Activity界面的一部分。 2、它具有自己的生命周期,能接收自己的输入事件,并且您可以在 Activity 运行时添加或移除片段(有点像您可以在不同 Activity 中重复使用的“子 Activity”)。 3、当您将片段作为 Activity 布局的一部分添加时,它存在于 Act...

dev晴天的博客 8838

android碎片与view,安卓之碎片Fragment

碎片介绍碎片使用方式碎片生命周期碎片界面滑动碎片介绍碎片是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间。碎片使用方式1)布局文件添加碎片在xml文件直接使用fragment标签2)动态添加碎片可以在程序运行时动态地添加到活动当中,根据具体情况来动态地添加碎片public class MyFragment extends Fragment {@Overridepubl...

weixin_42462474的博客 346
上一篇: Android Fragments 详细使用
下一篇: LocalActivityManager
stonenotes123
博客等级 码龄15年 30粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值