这是我使用的 NavigationDrawer:
首先我在 NavigationDrawer 中的 ListView 上设置了一个 Click 监听器
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
DrawerItemClickListener 是一个自定义类
private class DrawerItemClickListener implements
ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectItem(position);
}
}
这会调用selectItem(int position)
private void selectItem(int position) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
switch (position) {
case 0:
ft.replace(R.id.content_frame, new FirstFragment());
setTitle("First");
break;
case 1:
ft.replace(R.id.content_frame, new SecondFragment());
setTitle("Second");
break;
case 2:
ft.replace(R.id.content_frame, new ThirdFragment());
setTitle("Third");
break;
}
ft.commit();
mDrawerList.setItemChecked(position, true);
mDrawerLayout.closeDrawer(mRelativeLayout);
}
在这里你可以设置任何你想要的任何类型的片段。有了这个,你不会有任何片段类型不匹配。
您也可以按照 Android 开发人员提供的官方 NavigationDrawer 示例进行操作。
http://developer.android.com/training/implementing-navigation/nav-drawer.html
希望对你有帮助。