私はフラグメントを研究しており、記事のマスター詳細の例を使用して、ドキュメントのチュートリアルを確認しました。記事タイトル用の 2 つのフラグメントがあり、選択すると記事の詳細ビューが表示されます (マルチペイン レイアウト)。onCreate メソッド内でsavedInstancestateをチェックする理由の1つの小さな部分を除いて、チュートリアルのほとんどを取得します。
私の質問は、コンテナアクティビティの 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();
}
}