【问题标题】:First fragment to be added to the main activity when application starts up应用程序启动时要添加到主活动的第一个片段
【发布时间】:2014-03-21 11:41:17
【问题描述】:
假设我正在创建一个Android 应用程序,它有一个Navigation drawer 和一组fragments。当用户单击Navigation drawer 中的选项时,会加载相应的fragment。该应用程序只有一个activity (Main activity),它没有view。
当应用程序第一次启动时,哪个fragment 被加载到main activity 中?在没有用户交互的情况下,application 如何知道首先加载哪个fragment?如何设置自定义fragment在应用程序启动时自动加载?
谢谢
【问题讨论】:
标签:
android
android-fragments
slidingdrawer
【解决方案1】:
您只需在用户交互和 Activity 的 onCreate() 方法中执行用于替换片段的相同 FragmentTransaction。但是你必须像这样检查 savedInstanceState 是否为 null:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState == null) {
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.flFragmentContainer, MainFragment.newInstance());
transaction.commit();
}
}