我是一个新手开发者,我正在我的应用程序中集成导航抽屉与安卓支持v7,我有一个问题。当我启动应用程序时,主布局是这样的:
这是我的主要活动:
drawerList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view,
int position, long id) {
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Fragment1();
break;
case 1:
fragment = new Fragment2();
break;
case 2:
fragment = new Fragment3();
break;
case 3:
fragment = new Fragment4();
break;
}
FragmentManager fragmentManager =
getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.content_frame, fragment)
.commit();
drawerList.setItemChecked(position, true);
tituloSeccion = opcionesMenu[position];
getSupportActionBar().setTitle(tituloSeccion);
drawerLayout.closeDrawer(drawerList);
}
});
如何设置默认片段,如应用程序的主布局?谢谢你
发布于 2014-03-10 17:49:46
如果您可以在每次创建活动时加载默认片段,则可以将FragmentTransaction在onCreate()如下所示:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
tx.replace(R.id.content_frame, new Fragment1());
tx.commit();
}
如果您想要一种更复杂的方法(例如,当您返回到主活动时切换到不同的片段),您可以使用Intent中的片段由临时演员确定onCreate(),您只需将默认片段放在defaultValue加载额外数据时:
int position = getIntent().getIntExtra("position", 1);
switch(position){
...
}
发布于 2014-07-10 17:33:40
将其放在Main Activity中onCreate()的末尾。
if (savedInstanceState == null) {
selectItem(0);
}
发布于 2014-03-10 17:50:28
您不能在XML中做到这一点,如果您的意思是这样的话。您可以在活动的onCreate中执行此操作。例如:
if (getFragmentManager().findFragmentById(R.id.content_frame) == null) {
selectItem(0);
}
其中,selectItem是用来在抽屉中选择片段的方法,如谷歌的示例所示https://developer.android.com/training/implementing-navigation/nav-drawer.html,0是默认片段的位置。
https://stackoverflow.com/questions/22296531
复制相似问题