【发布时间】:2015-07-23 04:49:27
【问题描述】:
我已将导航抽屉附加到我的应用程序的主Activity。
导航抽屉有 4 个选项,可将用户导航到 4 个不同的片段 f1、f2、f3 和 f4。
我已经创建了一个主页Fragmentfh。
我没有在 Navigation Drawer 中添加 fh 作为选项。
Fragment fh 填充数据进行 http 调用。
每当用户选择 f1、f2、f3 或 f4 时;需要显示相应的片段。
到这里一切正常。
但是,每当用户按下返回按钮时,都会显示 fh。 IE。 content_frame 应该包含 fh。 我无法做这部分。
现在,每当用户按下返回按钮时,默认视图都是空白的。
此外,由于 fh 进行 http 调用以填充数据,因此需要显示添加到堆栈中的 fh。
这是我的实现:
MainActivity- OnCreate
mDrawerLayout.closeDrawer(mDrawerList);
setUpHomeFragment();
这是我管理片段的方式,点击导航抽屉项目...
private void showFrg(Fragment fragment){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.addToBackStack(null);
fragmentTransaction.replace(R.id.content_frame, fragment).commit();
}
setUpHomeFragment 函数,仅在活动 oncreate() 上调用一次
private void setUpHomeFragment(){
mLandingPageFragment=new ReadyMyOrderCollections();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.content_frame, mLandingPageFragment);
ft.addToBackStack(null);
ft.commit();
}
MainActivity XML 布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include layout="@layout/toolbar" />
<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
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<include
android:layout_width="@dimen/drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start"
layout="@layout/list_view" />
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
【问题讨论】: