android开发人员教程(代码beloew)只在savedInstanceState != null
时将片段添加到布局中。
表示始终未将savedInstanceState == null
片段添加到布局,以及何时始终将savedInstanceState != null
片段添加到布局中。
为什么我可以依赖它?我找不到与savedInstanceState
的直接关系,以及是否将片段添加到布局中。
我正在谈论的代码:
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.news_articles);
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.
// *** question: I don't understand the comment above. (described in my question)
if (savedInstanceState != null) {
return;
}
HeadlinesFragment firstFragment = new HeadlinesFragment();
firstFragment.setArguments(getIntent().getExtras());
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();
}
}
}
答案 0 :(得分:0)
Fragments
会自动附加到活动。如果添加它,则无需再次添加。 Android会自行完成。
如果savedInstanceState
中的onCreate
捆绑包不为空,则会重新创建您的活动(可能是因为内存较低而更改了方向或Android杀死了您的应用程序)并且您不需要再次附加片段。
当然这取决于不同的情况。有时您需要在每次活动更改方向时在onCreate
中添加不同的片段。然后你不需要使用那张支票。