17
Android 4.2:具有嵌套片段的后堆栈行为
在Android 4.2中,支持库获得了对嵌套片段的支持,请参见此处。我玩过它,发现了一个关于back stack和getChildFragmentManager()的有趣行为/错误。当使用getChildFragmentManager()和addToBackStack(String name)时,通过按“后退”按钮,系统不会将后退堆栈运行到上一个片段。另一方面,当使用getFragmentManager()和addToBackStack(String name)时,通过按返回按钮,系统将返回到上一个片段。 对我来说,这种行为是意外的。通过按设备上的“后退”按钮,我希望最后一个添加到后堆栈的片段都会弹出,即使该片段是在儿童片段管理器中添加到后堆栈的。 这种行为正确吗?这是一个错误吗?有没有解决此问题的方法? getChildFragmentManager()的示例代码: public class FragmentceptionActivity extends FragmentActivity { @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); final FrameLayout wrapper1 = new FrameLayout(this); wrapper1.setLayoutParams(new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT)); wrapper1.setId(1); final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); params.topMargin = 0; final TextView text = new TextView(this); text.setLayoutParams(params); …