我有Fragment1。在他们身上,我按下按钮并启动DialogFramgent。在DialogFragment上按下按钮并启动Fragment2。当我按下时,我将返回Fragment1,但不返回DialogFragmnet
答案 0 :(得分:0)
您可以将片段添加到Backstack。调用addToBackStack()应该可以解决问题。直接来自文档:“这个后向堆栈由活动管理,并允许用户通过按”返回“按钮返回到先前的片段状态”。详情请见: http://developer.android.com/guide/components/fragments.html
碧玉
答案 1 :(得分:0)
在活动中使用片段的一个很棒的功能是能够添加,删除,替换和执行其他操作,以响应用户交互。您为活动提交的每组更改都称为事务,您可以使用FragmentTransaction中的API执行一项更改。您还可以将每个事务保存到由活动管理的后台,允许用户向后导航片段更改(类似于向后导航活动)。
您可以从FragmentManager中获取FragmentTransaction的实例,如下所示:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
每个事务都是您希望同时执行的一组更改。您可以使用add(),remove()和replace()等方法设置要为给定事务执行的所有更改。然后,要将事务应用于活动,必须调用commit()。
然而,在调用commit()之前,您可能需要调用addToBackStack(),以便将事务添加到片段事务的后台堆栈中。此后备堆栈由活动管理,并允许用户通过按“返回”按钮返回到先前的片段状态。