我正在研究片段,并使用文章主详细信息示例检查了此处文档中的教程。我们有 2 个片段,一个是文章标题,选择后会出现详细的文章视图(多窗格布局)。我得到了教程的大部分内容,除了一小部分,为什么他们检查 onCreate 方法中的 savedInstancestate。
所以我的问题是关于容器活动的 onCreate() 方法。它有这个检查
if (savedInstanceState != null) {
return;
}
当我删除它时,片段在 ui 中重叠。所以我知道它可以防止这种情况,但我不知道为什么?我想要有人给我解释一下。
提前致谢。
编辑:完整的方法
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.news_articles);
// Check whether the activity is using the layout version with
// the fragment_container FrameLayout. If so, we must add the first fragment
if (findViewById(R.id.fragment_container) != null) {
// However, if we're being restored from a previous state,
// then we don't need to do anything and should return or else
// we could end up with overlapping fragments.
if (savedInstanceState != null) {
return;
}
// Create an instance of ExampleFragment
HeadlinesFragment firstFragment = new HeadlinesFragment();
// In case this activity was started with special instructions from an Intent,
// pass the Intent's extras to the fragment as arguments
firstFragment.setArguments(getIntent().getExtras());
// Add the fragment to the 'fragment_container' FrameLayout
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();
}
}