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