android - 分片回栈
问题描述
我有 3 个片段,例如片段 1、片段 2、片段 3
这些都是使用替换事务打开的,并且在每个片段的 OnViewCreated 中实现了 api。
现在,当我从第二个片段移动到第三个片段时,应该删除第二个片段并且堆栈中应该只有第一个片段。
出现的问题是,当我从第 2 个移到第 3 个时,应该调用第 3 个的 api,它工作正常,但与此同时,第 1 个片段的 api 也被调用。
我不希望在调用第 3 个片段时调用第一个片段。
解决方案
抱歉,除非您使用 viewPager 或 Tabs,否则您的第 3 个片段不会调用第 1 个片段的功能。如果您不希望第二个片段在堆栈中,只需从附加片段中删除 .addToBackStack() 函数。
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, firstFragment)
.addToBackStack(null).commit();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, secondFragment).commit();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, thirdFragment)
.addToBackStack(null).commit();
推荐阅读
- cygwin - Cygwin 的 tr 命令,“tr -s [:blank:] ' '”,替换文本文件中小写 'a' 的实例
- javascript - 选中复选框时如何使单选按钮成为必需?
- ios - 为什么 Core Data 仅在应用重新启动后才返回新对象?
- vba - 用公式在Excel中获取范围名称
- django - Django Rest Framework:如果未找到结果,则以 404 响应
- ruby - 改进 ruby 中的递归“rmdir”
- android - 更新 Firebase 数据库中的特定节点和相关子节点?
- amazon-web-services - 如何使用规则引擎在 aws 上分别监控每个 iot 设备的使用情况?还有其他方法可以做到这一点吗?
- selenium - 如何在机器人框架中的 RIDE 上声明全局基本 url
- android - ActivityOptions.makeSceneTransitionAnimation 第一次不起作用