| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> android学习笔记:activity(6)-fragment manager -> 正文阅读 |
|
[移动开发]android学习笔记:activity(6)-fragment manager |
1.FragmentManager?类负责对应用的 Fragment 执行一些操作,如添加、移除或替换它们,以及将它们添加到返回堆栈。 2.每个FragmentActivity及其子类(如AppCompatActivity)都可以通过getSupportFragment()方法访问FragmentManager 3.fragment也能够托管一个或多个子fragment,在fragment内,可以通过getChildFragmentManager()获取对管理Fragment子级的FragmentManager的引用。如果需要访问其他宿主FragmentManager,可以通过getParentFragmentManager()方法 图 1.?两个界面布局示例,显示了 Fragment 与其宿主 Activity 之间的关系。 图1显示了两个示例,每个示例中都有一个activity宿主。这两个示例中的宿主activity都以ButtomNagigationView的形式向用户显示顶级导航,该视图负责以应用中的不同屏幕换出宿主Fragment,其中每个屏幕都实现为单独的Fragment. 示例1中的宿主Fragment托管两个子Fragment,这些Fragment构成拆分视图屏幕。示例2中的宿主Fragment托管一个子Fragment,该Fragment构成滑动视图的显示Fragment 基于此设置,可以将每个宿主视为具有与其关联的FragmentManager,用于管理其子Fragment,如下图所示 ? 3.一般来说,应用应该有应用项目中的一个或少数几个activity组成,其中每个activity表示一组相关的屏幕。Activity可能会提供一个点来防止顶级导航,并提供一个位置来限定ViewModels以及Fragment之间的其他视图状态的范围。应用中的每个目的地应由一个Fragment表示。(如果想要一次显示多个fragment,应使用子fragment,他们由目的地fragment及其子fragment管理器进行管理) 4.Fragment管理Fragment返回栈堆。在运行时,FragmentManager可以执行添加或移除Fragment等返回栈堆操作来响应用户互动。每一组更改作为一个单元(称为FragmentTransaction)一起提交。 5.当用户按设备上的“返回”按钮时,或者当您调用? 6.当对事物调用addToBackStack()时,事物可以包括任意数量的操作,如添加多个Fragment、替换多个容器中的Fragment、等等,在弹出返回栈时,所有这些操作会作为一项原子化操作反转。但是如果在调用popBackStack()之前提交了其他事务,并且没有对事物使用addTobackStack(),则这些操作不会反转,所以在一个
????????在本例中,
? ? ? ? 调用addToBackStack()会将书屋提交到返回栈堆,在其中提供可选名称能够在使用popBackStack()弹回到该特定事物 8.可以使用findFragmentById(0获取对布局容器当前Fragment的引用
或者可以为Fragment分配一个唯一的标记,并使用FindFragmentById获取引用。可以在布局定义中使用android:tagXML属性来分配标记,也可以在FragmentTransaction中的add()或replace()操作期间分配标记
9.在任何给定的时间,只允许一个? 如需在 Fragment 事务内定义主要导航 Fragment,请对事务调用? 将导航结构视为一系列层,其中 Activity 作为最外层,封装下面的每一层子 Fragment。每一层都必须有一个主要导航 Fragment。当发生返回事件时,最内层控制导航行为。一旦最内层再也没有可从其弹回的 Fragment 事务,控制权就会回到外面的下一层,此过程会一直重复,直至到达 Activity 为止。 请注意,当同时显示两个或更多 Fragment 时,其中只有一个可以是主要导航 Fragment。如果将某个 Fragment 设为主要导航 Fragment,会移除对先前 Fragment 的指定。在上例中,如果您将详情 fragment 设为主要导航 fragment,就会移除对主 fragment 的指定。 10.FragmentManager可以通过saveBackStack()和restoreBackStack()方法支持多个返回栈堆。这两种方法可以通过保存一个返回栈堆并恢复另一个返回栈堆来在返回栈堆之间进行交换(注:或者,也可以使用? 11.除非使用?
12.添加fragment时,可以手动实例化Fragment并将其添加到FragmentTransaction
13.在配置更改期间,activity及其所有Fragment都会被销毁,然后使用最适用的android资源重新创建,FragmentManager会自动处理这些事情 14. 默认情况下, 如需为 Fragment 提供依赖项或使用任何自定义构造函数,您必须创建自定义? 假设您有一个? 您可以将? 15.fragment提供依赖项这一块暂时理解有些问题,需要后期返回理解。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:44:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |