我有一个与之关联的4个片段的活动。在其中一个片段中,我可以打开另一个活动。当我从活动返回时(通过调用finish()
)显示默认片段而不是最后一个片段。例如:如果我有4个片段a b c d与活动A相关联,则默认显示的片段为c。从片段a我可以打开其他活动B.我想要的是看到从活动B返回到活动A时看到的最后一个片段。
答案 0 :(得分:1)
addToBackStack(String)是提供将片段添加到backStack的功能的方法,因此当按下后退按钮时,片段将以与添加它们的方式相反的顺序显示。
对于您在事务中替换或添加片段(例如)时的事务,
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(your layout, fragment a, tag);
ft.addToBackStack(null); // this line will remember fragment a
ft.commit();
完成活动B.您将能够看到片段A,如果按后退按钮,您将看到其他片段的顺序相反。
编辑 - 检查片段是否可见。
使用Fragment类的isVisile()方法来查看这是否是当前可见的片段。
public final boolean isVisible ()
如果片段当前对用户可见,则返回true。这意味着它:(1)已添加,(2)其视图附加到窗口,(3)未隐藏。'