我的应用程序中有四个主要片段和一个次要片段。比如片段A,B,C,D在片段A处有一个ListView。如果用户点击列表项,另一个片段(子A)将显示出来。因此,如果用户单击A -> B -> C -> D。返回栈将是D -> C-> B-> A。这很简单和容易。这里是我的问题..,当用户点击一个列表项在片段A,过渡将A -> * 子A* -> B -> C -> D.但我不想在backstack上使用sub A。我想要的结果是D -> C -> B -> A。我目前正在尝试跳过子A,但仍然找不到合适的答案。
3条答案
按热度按时间1u4esq0p1#
通过覆盖或任何特定的后退按钮使用此选项单击
像这样覆盖后退按钮
d6kp6zgx2#
1.在您的托管Activity中创建一个布尔标志,以跟踪是否应跳过片段子A:
public boolean footer = false;
1.当从片段子A导航到任何其他片段时,将skipFragment标志设置为true:
return true;
1.在宿主Activity中,重写onBackPressed()方法来处理后退按钮按下:
确保将“FragmentATag”替换为片段A添加到回栈时使用的实际标记或名称。
afdcj2ne3#
我认为下面的代码是为你工作。
建议
您应该使用导航组件。它非常简单,可读性更强。如果您使用Navigation Component,则可以轻松处理此类情况,同时还可以帮助您可视化应用的导航流。
尝试Navigation Component