Android 上的嵌套 Fragment 和 ViewPager 问题

2024-04-24

我将 FragmentStatePagerAdapter 与视图分页器结合使用,该视图分页器嵌套在 Android 上的片段中。因此,我将 ChildFragmentManager 与 FragmentStatePagerAdapter 结合使用来创建我的片段。

到目前为止一切都很好,但问题是:

  • 如果我在未完成使用视图分页器托管片段的活动的情况下打开另一个活动,然后恢复它,则在 ViewPager 中选择的片段为空。如果我在打开不同的 Activity 之前切换 ViewPager 中的片段,则不会出现此问题。返回并在 ViewPager 中看到空片段后,我仍然可以切换下一个片段,但如果我尝试切换回空片段,则会收到 NullPointerException。如果我在托管 ViewPager 的片段和其他片段之间切换或者更改方向,则不会出现此问题。

  • 如果我使用 FragmentManager 而不是 ChildFragmentManager,则在切换到不同的 Activity 时不会出现此问题,但如果我在托管和不同的片段之间切换或更改方向,则会出现此问题。

所以这是我已经尝试过但没有成功的方法: * 使用FragmentStatePagerAdapter适配器和FragmentPagerAdapter * 使用 setRetainedInstance(true 和 false) * 使用 getChildFragmentManager() 和 getFragmentManager() * 重写 getItemPosition() 返回 POSTION_NONE 并在 onResume() 中使用 notificationDataChanged()

目前唯一能做到这一点的是在 onResume() 中重新创建 PagerAdapter 并重新初始化 ViewPager,但我认为这是非常糟糕的做法,因为所有内容都需要重新创建。

那么是否有人可以向我解释正确的实现应该是什么样子,或者为什么片段会变成空(它们不为空,我检查过)。我正在寻找一种更优雅的解决方案,而不是每次恢复活动时都重新创建所有内容。

非常感谢任何帮助。


None

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

Android 上的嵌套 Fragment 和 ViewPager 问题 的相关文章

  • Cordova - 启动后出现白屏,控制台中没有例外

    我已经离开我的 Cordova 应用程序一段时间了 但昨天刚刚进行了一次新的克隆 发现它出现了 死机白屏 症状 启动画面显示 程序加载 然后我就得到一个空白屏幕 更多细节 CLI 科尔多瓦 6 1 1 安卓 5 1 1 ios 4 1 1
  • 虚拟回调接口

    在 Eclipse 为您创建的来自 Google 的示例主从流代码中 片段中包含以下内容 private Callbacks mCallbacks sDummyCallbacks public interface Callbacks pub
  • 当我单击“完成”键时,Android OnEditorActionListener() actionId 给出 0

    我创建了一个键盘 当用户输入数字时 它会输入特定的 EditText 但是当用户单击Done关键 它没有去setOnEditorActionListener但它关闭了键盘 这是我的代码 final EditText txtQty new E
  • 4 天后,应用仍未在 Google Play 搜索中编入索引

    我已经在 4 天前在 google play 上发布了我的第一个应用程序 语音到短信 但我仍然无法通过其名称或开发人员名称在搜索中找到我的应用程序 我只能通过包名称或真实应用程序名称 但不带空格 找到我的应用程序 VoiceToSMS 链接
  • CoordinatorLayout 和 ImageView 在滚动时调整宽度的问题

    我正在尝试放置一个ImageView in a CollapsingToolbarLayout它在加载时占据整个屏幕 并且当您滚动内容时 16x9 分辨率图像宽度会调整大小 直到图像占据屏幕的整个宽度 那时 我希望图像具有视差app lay
  • 在 NFC 标签扫描期间,onNewIntent() 内的intent.getAction() 为 null

    这是我第一次使用 NFC 标签 我在清单中声明了 NFC 扫描活动
  • Android 和 Google 地图内部片段以及其他控件和 viewpager

    我是android编程新手 我有一个带有 3 个页面 片段 的小应用程序 使用 pageradapter 和 viewpager 在它们之间滑动 其中一个页面包含复选框 和其他控件 和地图 我的问题是程序在启动时崩溃 Fragment co
  • AndEngine MenuScene - 无法单击按钮

    我有一个关于 android 和 andengine 的小问题 这是我的主菜单的源代码 AbstractScene is extending Scene public class MainMenuScene extends Abstract
  • 如何在Android模拟器中隐藏应用程序图标?

    我有一个应用程序在启动完成后自动启动 但应用程序图标显示在android模拟器中 现在我想向用户隐藏该图标 这样用户就无法知道应用程序已启动 并且他们无法启动该应用程序手动申请 在您的 AndroidManifest xml 文件中 您可能
  • Android 操作项上的通知徽章

    我想在操作栏中放置的购物车图像上添加一个通知徽章 并以编程方式操作它 有帮助吗 您可以显示自定义MenuItem on ActionBar通过创建一个custom layout for MenuItem 要设置自定义布局 您必须使用菜单项属
  • 文本视图不显示全文

    我正在使用 TableLayout 和 TableRow 创建一个简单的布局 其中包含两个 TextView 这是代码的一部分
  • TextView.setMaxLines 不起作用?

    在我的应用程序中 我有一个屏幕 其中显示一些文本 然后显示一张照片 文本的长度是可变的 有时根本没有 有时很多 所以我想对其进行设置 以便文本永远不会占用超过几行 但可以滚动 为下面的图像留下足够的空间 我这部分的视图组件是以编程方式创建的
  • Android 中 Activity 之间的 3D 动画

    How to create animation between two Activity look like As Screen shot in android 搜索jazzyviewpager 这是link https github co
  • 使 Recyclerview 固定高度并可滚动

    已解决以下检查答案 所以我试图为我的 Android 应用程序创建评论功能 我想在 recyclerview 中显示评论 然后在 recyclerview 下方有一个按钮和文本视图来添加评论 我想让 recyclerview 具有一定的高度
  • 如何知道我的应用程序的活动计数?

    我的应用程序中有多项活动 请考虑以下案例 Activity A 调用 Activity B B 调用 C 当用户按后退键时 C 生成通知并转到 B 现在再次按后退 因此将显示 A 再次按后退键也会终止 A 并显示通知 现在 当用户按下通知图
  • 用于请求带有临时缓存的远程 Observable 的 RxJava 模式

    用例是这样的 我想暂时缓存最新发出的昂贵的Observable响应 但在它过期后 返回到昂贵的源Observable并再次缓存它 等等 一个非常基本的网络缓存场景 但我真的很难让它工作 private Observable
  • 调试android数据绑定?

    谁能告诉我如何调试或找到数据绑定生成的代码 从this https www youtube com watch v NBbeQMOcnZ0链接我发现它生成了所需的代码 我猜您正在寻找自动生成的绑定 java 文件 我也在寻找他们 最后我在这
  • Android AppWidgetManager 方法 updateAppWidget 无法设置意图、加载数据。而且它是随机发生的

    我的小部件由 2 个按钮和一个显示数据的列表视图组成 大多数时候 当调用小部件提供程序的 onUpdate 方法时 一切都会正常加载 每个人都很高兴 但是我注意到有时在调用更新方法后 小部件完全无法加载其数据 列表视图为空 所有按钮均无响应
  • 在数组列表中过滤 Filterable 不取消之前的过滤

    我看过过滤器方法文档 其中显示调用过滤器会取消所有先前未执行的过滤请求 并发布一个稍后将执行的新过滤请求 但我收到的实际回调有些不同 在我的实现中 它不会取消先前的过滤器请求并调用publishResults 最近一次搜索条件后的上一次搜索
  • 如何用LoaderManager自动重新查询

    我有一个应用程序显示来自 SQLite DB 的数据 并且数据不断变化 所以显然 我认为我应该使用 LoaderManager 来显示数据 我读过一些关于将 LoaderManager 与 SQLite 结合使用的内容 然后看到了亚历克斯

随机推荐

  • PopupView 没有显示?

    这是 XML 只是一个网络视图
  • Mysql InnoDB性能优化和索引

    我有 2 个数据库 需要链接两个大表之间的信息 每个表超过 300 万个条目 并且不断增长 第一个数据库有一个表 pages 用于存储有关网页的各种信息 并包括每个页面的 URL URL 列是 varchar 512 并且没有索引 第二个数
  • C 语言标准集合在哪里?

    我现在致力于学习 C 我擅长 Python PHP Bash 但我决定我不能流利地使用 C 但是我无法想象在没有列表和哈希的语言中工作 也许我 我只是有点操之过急 但肯定有 标准 集合库 我在 GNU 标准库中没有看到任何内容 有什么建议吗
  • 使用 Jenkins 凭证插件以纯文本形式显示密码

    我正在尝试使用 Jenkins Credentials 插件来获取用户输入并在 Jenkinsfile 中使用它进行处理 由于密码字段高度敏感 我希望凭据插件能够屏蔽密码 使其不显示在控制台输出中 但是似乎密码以纯文本形式显示 我注意到一个
  • 如何在不使用 MATLAB 的情况下打开 .mat 文件?

    我在Matlab中做了一个项目 现在我已经卸载了Matlab 现在 我需要一些我的项目的参考 我留下了所有 mat 文件 我正在尝试在记事本中打开它们 并且我在那里得到了 unicode 字符 我的问题很简单 如何在记事本或某些文字处理器中
  • 如何将 .pb 文件转换为 .h5。 (张量流模型到keras)

    我已经使用重新训练了我的模型tensorflow现在想使用keras以避免会话内容 我怎样才能转换 pb文件至 h5 import tensorflow as tf from tensorflow keras models import s
  • 使用 IAM 角色承担的 Terraform

    我一直在使用 terraform 的访问 密钥来创建 管理我们在 AWS 中的基础设施 但是 我尝试改用 IAM 角色 我应该能够使用我的帐户中的角色并承担另一个帐户中的角色 并且应该能够运行计划 应用等以在另一个帐户中构建基础设施 有什么
  • Node.js 承诺请求返回

    我使用 promis 模块从请求模块返回 json 数据 但每次运行它时 它都会给我这个 Promise 45 0 81 0 65 null 54 null 我无法让它工作 有人知道问题所在吗 这是我的代码 function parse r
  • 无法上传 targetSdkVersion 为 30 的签名 apk

    我生成了一个签名的 apk 目标 sdk 版本为 30 Android 11 我知道它尚未正式发布 但我的应用程序已准备好接受新的更改 我正在尝试将其上传到 google play 控制台 但遇到错误 您上传的 APK 签名无效 了解更多信
  • 在开发中运行时,Google Chrome 中未设置 ASP.net core auth cookie

    我的解决方案中有三个应用程序 全部内置于 asp net core 1 MVC 6 中 应用程序 1 是一个 MVC 应用程序 用于验证用户身份 应用程序 2 是一个 Angular SPA 应用程序 是解决方案中的主要应用程序 App 3
  • 未找到指定的 VM 安装:类型标准 VM,名称 jre7

    未找到指定的 VM 安装 类型标准 VM 名称 jre7 您在 Eclipse 中构建 ant 文件时遇到过这个问题吗 那么这篇文章适合您 删除并重新创建工作区并不是解决方案 有一个简单的解决方案可以解决此问题 而无需重新创建工作区 右键单
  • 由于文件大小为零,无法连接到 NetBeans 发行版

    我最近在 Windows 10 PC 上重新安装了 Netbeans IDE 以恢复一些不相关的配置 当我尝试检查新插件以便能够下载 Sakila 示例数据库时 我收到这个错误 https i stack imgur com 1RqFL p
  • Lucene 3 上的“令牌”列表

    我是 Lucene 的新手 我开始学习版本 3 分支 但有一件事我不明白 显然是因为我在该主题上没有经验 在 Lucene 2 9 中 如果我想要一个令牌列表 我会创建一个 Token 类的 ArrayList 例如 ArrayList 这
  • 如何创建 pinterest 风格隐藏/取消隐藏导航/标签栏?

    如何创建隐藏 取消隐藏导航栏 就像 pinterest 和许多其他应用程序所做的那样 我知道基本的想法是使用 UIScrollView 委托并检测我是否向上或向下滚动并基于此显示导航栏 那么 如果导航栏隐藏 我是否还应该调整导航控制器视图高
  • 无法修改 char 数组

    考虑以下代码 char message foo void main void message bar 为什么 MPLAB IDE v8 63 中出现语法错误 我只是想改变字符数组的值 声明后不能像这样使用字符数组 如果您想为字符数组分配新值
  • 如何通过反射判断 C# 方法是否为 async/await?

    e g class Foo public async Task Bar await Task Delay 500 如果我们反思这个类和方法 我如何确定这是否是一个实际的 async await 方法 而不仅仅是一个恰好返回任务的方法 cla
  • 获得正确的图像旋转[重复]

    这个问题在这里已经有答案了 我有一个简单的问题 当我将图像加载到 Windows 窗体时PictureBox有些图片是旋转的 有些则不是 基本上 用户选择带有OpenFileDialog当选择图片时 private void OpenFD
  • 使用 JPA 实体作为域模型是一个好习惯吗?

    或者创建一个由域模型组成的域层并与 JPA 实体对话以进行数据库访问 两种方法的优缺点是什么 谢谢 这确实取决于您对域进行编码的方式 一般来说 在 Java 中 我更喜欢创建一组单独的 JPA 注释的 DTO 来处理持久性 此类 DTO 将
  • 尝试将应用程序二进制文件上传到 App Store Connect 时,Xcode 12 出现错误

    在 Mac OS 10 15 7 的 Xcode 12 1 中 当我尝试将应用程序二进制文件上传到 App Store Connect 时 我得到 App Store Connect 操作错误 请将 iTMSTransporter 更新为
  • Android 上的嵌套 Fragment 和 ViewPager 问题

    我将 FragmentStatePagerAdapter 与视图分页器结合使用 该视图分页器嵌套在 Android 上的片段中 因此 我将 ChildFragmentManager 与 FragmentStatePagerAdapter 结