我对android开发相对较新。基本上,我有一个导航抽屉。其中一个菜单需要使用viewpager打开FragmentActivity。
这里是displayview函数
/**
* Diplaying fragment view for selected nav drawer list item
* */
private void displayView(int position) {
LAST_DISPLAY_POSITION = position;
Fragment fragment = null;
switch (position) {
case 0:
Intent in = new Intent(getApplicationContext(), TestFragmentActivity.class);
startActivity(in);
break;
case 1:
fragment = new MyAccountFragment();
break;
case 2:
fragment = new TestFragment();
break;
case 3:
fragment = new TestFragment();
break;
case 4:
fragment = new TestFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
正如您在案例0中看到的那样,我只是调用startactivity来打开视图。如何使用导航抽屉显示FragmentActivity?
非常感谢任何帮助。
修改
my activity_main.xml
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- Framelayout to display Fragments -->
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
<!-- Listview to display slider menu -->
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/list_background"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector" />
</android.support.v4.widget.DrawerLayout>
答案 0 :(得分:0)
做一件事,现在您可能已经在{1}}的单个活动中为NavigationDrawer
编写了代码,而您将转到另一个活动DisplayFragmentsActivity
,这肯定会让您编写代码在该活动中TestFragmentActivity
,如果您正在处理,还需要管理所有其他事项以选择菜单。
因此,我建议将NavigationDrawer
的代码从NavigationDrawer
移至新的DisplayFragmentsActivity
,并将该活动扩展到MasterFragmentActivity
和DisplayFragmentsActivity
。所以现在你们两个活动中都有相同的抽屉。
这将解决问题。
您可能希望避免创建其他活动的另一个建议,因为您正在使用片段尝试仅使用单个活动。尝试找到TestFragmentActivity
的替代品。