addToBackStack(null) 后跟 commit() 是什么意思?
引用文档:
通过调用addToBackStack(),替换事务被保存到
返回堆栈,以便用户可以反转事务并恢复
按“后退”按钮可查看上一个片段。
如果您向事务添加多个更改(例如另一个 add()
或remove())并调用addToBackStack(),然后应用所有更改
在调用 commit() 之前作为单个添加到返回堆栈中
交易和后退按钮会将它们全部反转。
向 FragmentTransaction 添加更改的顺序并不重要,除了:
你必须打电话commit()
最后的。如果您将多个片段添加到同一个容器中,那么添加它们的顺序将决定它们在视图层次结构中的显示顺序。
所以你必须最后承诺。
为什么需要向 addToBackStack 传递 null 参数?
它不需要为空,它可以是一个字符串。如果您不想,只需传递 null 即可。
公共抽象FragmentTransaction addToBackStack(字符串名称)
添加到 API 级别 11
将此事务添加到返回堆栈中。这意味着事务在提交后将被记住,并在稍后从堆栈中弹出时反转其操作。
参数
name 此返回堆栈状态的可选名称,或为 null。
关于:
看来这段代码没有用,因为我运行的代码没有最后一个
行 .addToBackStack(null).commit() 运行没有任何问题
如果您想导航到上一个片段,请将其添加到后台堆栈。所以这取决于你是否想将片段添加到backstack中。
像这样添加后如何获取该片段?
您已经拥有片段实例firstFragment
。所以我不知道你所说的稍后获取片段是什么意思。
更多信息 @
http://developer.android.com/guide/components/fragments.html
http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)