重新创建父 Fragment 后获取对子 Fragment 的引用

2024-01-05

从Android 4.2开始,Android支持嵌套片段 http://developer.android.com/about/versions/android-4.2.html#NestedFragments。该文档没有给出很多有关嵌套的解释Fragment生命周期,但从经验来看,它们的生命周期与“常规”非常相似Fragments.

看起来有一个很大的区别:孩子Fragments当父级时不恢复Fragment onCreate方法被调用。因此,似乎不可能保存/恢复对特定的引用Fragment:

  • Using getChildFragmentManager.findFragmentByTag(String)总是返回null在父母中Fragment onCreate(Bundle)因为mActive is null.
  • Using putFragment/getFragment结果是NullPointerException因为getFragment查找 null 的大小mActive ArrayList.

所以,我的问题很简单。有没有正确的方法来检索对孩子的引用Fragment在父级中Fragment onCreate method?


我认为你不能进入onCreate因为当时视图还没有构建。你可以在onViewCreated()尽管。我使用的逻辑是:

  • 检查是否有保存的状态onViewCreated(),如果有则尝试获取子fragment
  • 然后检查子片段是否为空,如果是,则使用子片段管理器添加它。

我所说的“检查”是指通过 id 查找片段。我想按标签也应该有效。

AFAIK 你无法获得子片段before视图层次结构已恢复或创建,但您可以稍后执行相同的操作,例如在onActivityCreated()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重新创建父 Fragment 后获取对子 Fragment 的引用 的相关文章

  • Flutter android 风味生成 apk

    我正在尝试使用 flutter 设置 Android 风格 我有两个入口点 lib main prod dart lib main dev dart 我还在我的 gradle 文件中添加了以下内容 flavorDimensions vers
  • Android ListView 子项

    我最近为 Android 应用程序创建了一个新的 ListView 对象 但遇到了一些错误 当我尝试使用简单适配器创建一个包含列表中子项目的项目时 创建的最新项目与其他项目重叠 我正在使用地图列表来创建项目 例如 如果我向地图列表中添加一个
  • 是否可以在图片上叠加图标

    我正在创建一个允许用户上传图片的应用程序 当图片上传成功后 我想在右上角添加一个绿色的勾号 可绘制 失败时也一样 但有一个十字 Atm 我正在使用 Glide 在屏幕上显示 URI 我怎样才能做到这一点 您可以通过调用 glide 侦听器来
  • 使用 Gradle 检测 IDE 环境

    无论如何 有没有办法检测我正在运行我的项目的环境 像这样的事情 构建 gradle def usingIntelliJ def usingAndroidStudio if usingIntelliJ buildConfigField Str
  • Eclipse Android 不会清理,不会刷新资源

    我升级到Ubuntu 11 10 Eclipse 3 7 0 ADT 14 0 0 当我替换桌面上 res drawable nodpi 目录中的图片资源或 res raw 目录中的声音资源时 重新编译的程序和 Project Explor
  • 如何使用appium自动化Android手机后退按钮

    我正在使用 Appium python 客户端库 对 Android 上的混合移动应用程序进行测试自动化 我无法找到任何方法来自动化或创建手势以使用 电话后退 按钮返回到应用程序的上一页 有没有可以使用的驱动函数 我尝试了 self dri
  • 两个具有相同 id 的视图

    安卓如何使用R id id name膨胀 XML 后查找视图 1 假设我有两个 XML 每个按钮都有相同的 id 2 我对它们进行了膨胀并将它们转换为视图 3 R id类中只有一个int将为这两个按钮创建 android 如何区分这些具有相
  • opengl 覆盖在相机视图上

    我仍然没有找到在相机预览顶部显示 opengl 叠加层的正确方法 有一个 hack 你可以调用 setContentView GLSurfaceView addContentView MyCameraSurfaceView 但它无法正常工作
  • 如何在运行时添加TextView?

    如何在运行时向布局添加新的 TextView 是否可以 完整的解决方案 View parent parent view where to add ViewGroup layout new LinearLayout context layou
  • android 中的 lang.NumberFormatException

    我有以下代码 除了在后台线程中从数据库读取一些值并使用这些值之外什么也不做 我使用 jar 绘制折线图 对于我用于每个数组值的折线图 问题是第三个我传递给绘制 LineChart 的构造函数的参数是 float float viteza S
  • 当键盘出现时滚动布局

    当键盘出现并隐藏工具栏 FrameLayout 时 我的屏幕大小调整到顶部 我只需将聊天项目滚动到顶部并将框架布局保持在顶部 我尝试了谷歌和SO的一些例子 但对我没有任何帮助
  • 旋转器扩展到屏幕边界之外

    我有一个布局 其中包含一个三行的 TableLayout 每行都有一个 TextView 和一个 Spinner Spinners 的柱子设置为拉伸 我的问题是 当旋转器包含长字符串时 旋转器会超出屏幕边缘 我希望他们截断字符串 这是问题的
  • 如何防止 Xamarin Android 应用程序的设备字体大小影响?

    如果我更改设备字体 那么它也会更改我的应用程序字体 我不想根据设备字体更改我的应用程序字体 于是我就搜索了一下这个问题 结果发现方面 https developer android com guide topics resources mo
  • android.R.layout.simple_list_item_1是什么?

    在我看到的所有示例中 他们在创建 ArrayAdapter 时仅使用 android R layout simple list item 1 android R layout simple list item 1是什么 它只是一个名为sim
  • 在 Android 模拟器中更改屏幕亮度

    Android模拟器可以测试屏幕亮度变化吗 我尝试过各种示例 它们都使用以下代码片段 WindowManager LayoutParams lp window getAttributes lp screenBrightness some f
  • 如何在Android AsyncTask中显示Toast?

    我正在尝试在我的initial background类中显示Toast 扩展为AsyncTask
  • 如何使用支持FileProvider将内容分享给其他应用程序?

    我正在寻找一种使用 Android 支持库与外部应用程序正确共享 而不是打开 内部文件的方法文件提供者 http developer android com reference android support v4 content File
  • Android:在 Android M 中完全禁用 deviceidle(“Doze”)?

    在已 root 的 Android M 设备中 我想始终完全禁用设备空闲模式 Doze 是的 我知道这会影响我的电池寿命 这对我来说没问题 我知道我可以调用以下内容 dumpsys deviceidle disable 但是 我无法找到该子
  • sqlite3权限被拒绝android

    我试图直接在 Nexus 上访问我正在开发的应用程序的数据库 但当我尝试执行 sqlite3 命令时 我收到 权限被拒绝 的消息 我还尝试在 root mod 中启动 adb 但再次 设备上的权限被拒绝 我想我必须使用模拟器来做到这一点 但
  • 无法在 MARSHAMALLOW 文件选择器中选择 pdf、doc、ppt 等文件

    我正在使用我的 Android 应用程序将 pdf ppt doc 等文件上传到服务器 但在 Marshmallow 中 当文件选择器打开并且我浏览我的 Sdcard 或内部存储时 存在两个问题 1 它显示了所有我无法选择的文件 例如图像

随机推荐

  • Matlab中值滤波器代码

    我需要在 MATLAB 中对图像实现中值滤波 然而 我是不允许使用medfilt2 or ordfilt2MATLAB 中的函数 我们最近也开始学习MATLAB 是否有任何代码可用于中值滤波器或高斯滤波器 NB 这假设已安装图像处理工具箱
  • 如何将 Comet 与 Spring MVC 一起使用?

    我想添加一些彗星 服务器推送 http en wikipedia org wiki Comet programming 简单 Web 应用程序的功能 我无法找到有关如何执行此操作的最新信息 任何人都可以向我指出一些示例 教程 博客或任何最近
  • Android ACR122U NFC 集成

    See NFC 读取器 SELECT 通过 AID APDU 未路由到 Android 设备 https stackoverflow com q 50316799 2425802关于调试和最终结果 TL DR 读者可能已经不复存在了 我的
  • 验证 Knuth 洗牌算法尽可能无偏

    我正在实施一个高德纳洗牌 http en wikipedia org wiki Fisher E2 80 93Yates shuffle对于我正在从事的 C 项目 我试图从我的洗牌中获得最公正的结果 而且我不是 伪 随机数生成方面的专家 我
  • 创建一个 firemonkey 组件

    我正在 Delphi XE4 中使用 Firemonkey 但无法使用菜单项 Component gt New Component 创建新组件 无论该组件是 VCL 还是 Firemonkey 组件 或者我是否先创建一个包 结果都是相同的
  • 如何从命令行执行 SOAP wsdl Web 服务调用

    我需要进行 SOAP Web 服务调用https sandbox mediamind com Eyeblaster MediaMind API V2 AuthenticationService svc wsdl https sandbox
  • 事件处理程序性能

    我有性能问题 我创建了 100 个新按钮 并且想要分配一个单击事件处理程序 我执行这段代码大约 100 次 Buttons i Button Click new System EventHandler Button Click 大约需要2秒
  • 发送参数到before_save

    我正在尝试以 rails 方式 构建一个应用程序 所以这次我不是回顾性地处理数据库中的记录 而是尝试使用 before save 方法来完成它们 即这个 def make percentage from score percent scor
  • 如何在 Dart 中合并两个列表?

    我想知道是否有一种简单的方法可以在 dart 中连接两个列表来创建一个全新的列表对象 我找不到任何东西和类似的东西 My list list1 1 2 3 list2 4 5 6 I tried var newList list1 list
  • 在python中通过ftp更改权限

    我正在使用 pythonftplib将图像上传到我的 raspberryPi 上位于 var www 的文件夹中 一切工作正常 除了上传的文件有600权限和我需要644对于他们来说 哪种方法最好 我正在寻找类似的东西 def ftp sto
  • PhpStorm - 导航后退键盘快捷键不起作用

    When I Ctrl click on method it will jump to declaration of that method 问题 如何跳回到该方法的使用 I tried Ctrl Alt Left combination
  • 用于随机森林分类的​​ ROC 曲线

    我在用randomForestR平台中用于分类任务的包 rf object lt randomForest data matrix label factor cutoff c k 1 k 其中 k 的范围为 0 1 到 0 9 pred l
  • 如何在 Ruby on Rails 中分析请求?

    如何分析控制器操作 我的一个观点是渲染需要相当长的时间 我想把它分解一下 我懂了script performance profiler 但这似乎只能访问全局范围 红宝石教授 http ruby prof rubyforge org 是要走的
  • 如何轻松获取 Scala 案例类的名称?

    Given case class FirstCC def name String something that will give FirstCC case class SecondCC extends FirstCC val one Fi
  • pyspark approxQuantile 函数

    我有包含这些列的数据框id price timestamp 我想找到按以下分组的中值id 我正在使用此代码来查找它 但它给了我这个错误 from pyspark sql import DataFrameStatFunctions as st
  • 如何使用angularjs动态显示表中的对象数组?

    我使用 angular js 作为我的字体端 使用 node js 作为服务器端 使用 PostgreSQL 作为数据库 现在 我在数据库中有一些值列表 数据库 控制器代码 我得到以下输出console console log scope
  • 计算二维数组的页面错误数

    我正在努力学习考试 我找到了这个例子 但不明白他们是如何得到答案的 有人可以解释一下吗 问题 考虑二维数组 A int A 新 int 100 100 其中 A 0 0 位于页大小为 200 的分页内存系统中的位置 200 操作矩阵的小进程
  • 带有自定义分配器但没有其他参数的 std::function 构造函数有什么意义?

    我正在玩标准 函数和自定义分配器 但当我不为函数提供初始函子时 它的行为并不像我预期的那样 当我向构造函数提供自定义分配器但没有初始函子时 分配器永远不会被使用 或者看起来是这样 这是我的代码 Simple functor class th
  • 获取 Firestore 中玩家的排名

    我在 Firestore 中有 10k 个用户 每个用户的 documentId 是他们的 uid 分数注册到他们的文档中 为了找到Leaderboard的Top 20 它成功地根据其分数查询了Top 20用户 就像使用复合索引一样 let
  • 重新创建父 Fragment 后获取对子 Fragment 的引用

    从Android 4 2开始 Android支持嵌套片段 http developer android com about versions android 4 2 html NestedFragments 该文档没有给出很多有关嵌套的解释